この記事では、LARファイルのインポート中に、対象のサイトに既に存在するデータを更新するために使用できるメソッドについて説明します。サイト内で同じエントリーが見つかった場合、インポート処理がどのように動作するかを変更する3つのデータストラテジーがあります。それらは以下の通りです:
- ミラーリング
- 上書きのミラーリング
- 新規コピー
解決
1. ミラーリング
インポートされたLAR内のすべてのデータとコンテンツは、ソースへの参照を維持したまま、初回は新しいものとして作成されます。 同じソースからの後続のインポートは、新しいエントリを作成するのではなく、エントリを更新します。
これは、コンテンツは最初、新しいIDと更新された参照を持つ対象の環境内の新規としてインポートされますが、その後のインポートでは同じIDが保持されることを意味します。この方法を使用する場合は、次の点に注意してください。
- 対象サイトに同じユニークID(uuid)を持つエントリがある場合、新しいエントリがそれを置き換えます。
- 対象のサイト上に同じ名前 (ただし uuid が異なる) の ドキュメントとメディアエントリがある場合、新しいドキュメントの名前を変更し、その参照を更新することで競合を解決します。
例:
- Source Siteというブランクサイトを作成します。
- Source Siteでは、Document 1という基本ドキュメントを追加し、画像を使用してアップロードします。
- Source Siteでは、Article 1という基本Webコンテンツを追加しますが、まだ公開しないでください。
- エディタで、 画像 -> Source Site -> Document 1 -> OKをクリックします。
- Webコンテンツを公開します。
- Source Site全体をLARファイルにエクスポートします。
- Target Site Mirrorというブランクサイトを作成します。
- Target Site Mirrorで、先ほどと同じ名前の基本ドキュメントを追加します。 Document 1としてアップロードする画像には、別の画像を使用します。
- Source Siteの LAR ファイルをインポートし、 データの更新 セクションで ミラーリングオプションを選択します。
- 対象サイトのミラーでドキュメントやメディアを確認します。 そこに2つの画像が表示され、インポートされたファイルの名前がDocument 1(1)に変更されています。
- Article 1のWebコンテンツを確認すると、まだ正しい画像が表示されるので、参照元も更新しました。
- 同じLARファイルを同じストラテジーで再度インポートしても変更はありません。
2. 上書き付きミラー
ミラーリング戦略と同じ動作をしますが、同じ名前の文書や画像が見つかった場合は上書きされます。
この設定はミラーリング戦略に非常に似ていますが、ドキュメントの競合の処理が少し異なります。 この戦略を利用する際には、以下の点に注意してください。
- 対象サイトに同じユニークID(uuid)を持つエントリがある場合、新しいエントリがそれを置き換えます。
- 対象サイトに同じ名前(ただしuuidが異なる)の ドキュメントとメディアエントリがある場合、古いファイルを新しいもので上書きします。
例:
- Source Siteというブランクサイトを作成します。
- Source Siteでは、Article 1という基本ドキュメントを追加し、画像を使用してアップロードします。
- Source Siteでは、Article 1という基本Webコンテンツを追加しますが、まだ公開しないでください。
- エディタで、 画像 -> Source Site -> Document 1 -> OKをクリックします。
- Webコンテンツを公開する
- Source Site全体をLARファイルにエクスポートします。
- Target Site Mirror with Overwritingというブランクサイトを作成します。
- Target Site Mirror with Overwritingで、先ほどと同じ名前の基本ドキュメントを追加します。Document 1としてアップロードする画像には、別の画像を使用します。
- Source SiteのLARファイルをインポートし、 データの更新 セクションで 上書きのミラーリング オプションを選択します。
- Target Site Mirror with Overwritingのドキュメントとメディアを確認すると、そこには画像が1枚しかなく、それがインポートされたファイルなので、2枚目に作成された画像がインポート処理で上書きされていることがわかります。
- Article 1 Webコンテンツを確認すると、インポートされた画像が元の参照元で正しく表示されます。
- 同じLARファイルを同じストラテジーで再度インポートしても変更はありません。
3. 新規コピー
インポートされたLAR内のすべてのデータとコンテンツは、LARがインポートされるたびに、現在のサイト内に新しいエントリとして作成されます。
このストラテジーは重複を作成します - すべてのエントリは新しいものとしてインポートされ、競合があった場合には新しい一意のIDと更新された参照を使用します。 この攻略法を利用する際には、以下の点に注意してください。
- 対象のサイト上に同じ一意のID(uuid)を持つエントリがある場合、プロセスは新しいエントリの新しいIDを生成し、その参照を更新して、このようにインポートします。
例。
- Source Siteというブランクサイトを作成します。
- Source Siteでは、Document 1という基本文書を追加し、画像を使用してアップロードします。
- Document 1では、 Article 1という基本Webコンテンツを追加しますが、まだ公開しないでください。
- エディタで、 画像 -> Source Site -> Document 1 -> OKをクリックします。
- Webコンテンツを公開します。
- Source Site全体をLARファイルにエクスポートします。
- Target Site Copy as Newというブランクサイトを作成します。
- Target Site Copy as Newで、先ほどと同じ名前の基本ドキュメントを追加します。Document 1として アップロードする画像には、別の画像を使用します。
- Source Siteの LAR ファイルをインポートして、データの更新セクションで 新規コピーオプションを選択します。
- 対象のサイトのドキュメントとメディアをチェックして、新規でコピーすると、そこに2つの画像があり、インポートされたファイルが自動的に名前が変更されていることがわかります。
- Article 1のWebコンテンツを確認すると、まだ正しい画像が表示されるので、参照元も更新しました。
- 同じLARファイルを新規でコピー戦略で再度インポートします。
- Webコンテンツの記事とドキュメントとメディアのファイルを確認すると、インポートプロセスで新しい一意のIDと更新された参照を持つこれらのエントリの複製が作成されていることがわかります。
追加情報
エクスポート/インポートプロセス全体の詳細については、以下の記事をご参照ください
Liferay 6.2で "新規コピー "データ戦略を使用した場合、Webコンテンツ記事内の埋め込み画像のインポートに失敗するという既知の問題が1つあります:LPS-50144. この問題を回避するためには、必ずfix pack portal-56-6210以上をご利用ください。