Liferayインスタンスの移行
Liferay DXP 2025.Q2+/ポータル GA148+
データベース パーティションを抽出および挿入することで、異なる Liferay インストール間で仮想インスタンスを移行できます。 たとえば、既存の仮想インスタンスを Liferay Self-Hosted から Liferay PaaS に移動する場合などにこれを実行できます。 インストール内の仮想インスタンスをコピーすることもできます。
現在、この機能は ベータ機能フラグ (LPD-11342) によってサポートされています。
Liferay インストールには、ドキュメント ライブラリや検索インデックスなど、スタンドアロン パーティションに抽出されないその他のインフラストラクチャ コンポーネントが含まれています。 仮想インスタンスを移行またはコピーするときには、これらを個別に処理する必要があります。
抽出 ステップでは、Liferay は現在のインストールの仮想インスタンス データベースからのテーブルのコピーを含むスタンドアロン パーティションを作成します。 これにより、 lextracted_[companyId]という新しいデータベース スキーマがトリガーされます。 挿入 ステップでは、現在のインストールのデータベース内のスタンドアロン パーティションが新しい仮想インスタンスとして統合されます。
Liferay SaaS で仮想インスタンスをエクスポートまたは挿入するには、Liferay Cloud サポートにお問い合わせください。
データベースパーティションの検証
始める前に、データベースの準備ができていることを確認する必要があります。 Liferay には、移行を実行する前にデータベース パーティションを検証するツールが含まれています。 ソース データベースとターゲット データベースを分析し、互換性があるかどうかを示します。
ソース環境とターゲット環境の両方で MySQL または PostgreSQL を使用し、同じ Liferay バージョンを使用する必要があります。
データベース パーティション移行検証ツールは、エクスポートと検証の 2 つのモードで動作します。
エクスポートモード
ツールをエクスポートモードで実行するには、
-
bundles/tools/portal-tools-db-partition-migration-validatorフォルダに移動します。 ツールの.jarファイルとそれを実行するスクリプトがあります。 -
ソース データベースに対して次のパラメータを使用して
db_partition_migration-validator.shを実行します。--company-id [arg]: 抽出する仮想インスタンスの会社ID。--jdbc-url [arg]: JDBC URL。--output-dir [arg](オプション): ツールが生成された JSON ファイルを出力するディレクトリ。 デフォルトでは、ファイルはエクスポートフォルダーに生成されます。--password [arg]: データベースユーザーのパスワード。--schema-name [arg](オプション): ソースパーティションのデータベーススキーマ名。 デフォルトでは、ツールは--jdbc-urlパラメータ内のスキーマを抽出します。--help(オプション): パラメータ情報を表示します。
-
ターゲット データベースに対してコマンドを再度実行します。
エクスポート モードでは、ソース データベースとターゲット データベースに関する情報を含む 2 つの JSON ファイルが作成されます。 検証モードでは、これらのファイルを使用して互換性があるかどうかを確認します。
検証モード
エクスポート モードで両方の JSON ファイルを生成した後、同じデータベース パーティション移行検証ツールを使用してそれらを検証できます。 ツールを検証モードで実行するには、
-
引き続き
bundles/tools/portal-tools-db-partition-migration-validatorフォルダー内で、次のパラメーターを使用してdb_partition_migration-validator.shを再度実行します。--source-file [arg]: エクスポート モードでツールによって生成されたソース パーティションの情報を含むファイル。--target-file [arg]: エクスポート モードでツールによって生成されたターゲット パーティションの情報を含むファイル。--help(オプション): パラメータ情報を表示します。
データベースパーティションの抽出
データベースの互換性を確認した後、新しいデータベース スキーマを作成して、現在のインストールからパーティションを抽出できます。 このスキーマは、別のインストールに挿入することも、単一インスタンスのインストールとして独立して使用することもできます。 抽出後も、仮想インスタンスはソース データベース内で完全に機能します。
-
グローバル メニュー (
) で、 コントロール パネル → 構成 → システム設定に移動します。 -
プラットフォーム → 仮想インスタンスに移動します。
-
抽出会社 ID フィールドに、スタンドアロン パーティションの会社 ID を入力します。
あるいは、OSGi 構成を使用してパーティションを抽出することもできます。
-
com.liferay.portal.instances.internal.configuration.ExtractPortalInstanceConfiguration.configという名前のファイルを作成します。 -
.configファイルに会社IDを書き込みます。 例えば、extractCompanyId=L"12345" -
設定ファイルを
[Liferay Home]/osgi/configsに移動してデプロイします。
このプロセスにより、 lextracted_[companyId] という新しいデータベースが作成され、これを対象の Liferay インストールにインポートして挿入プロセスを実行できます。 抽出により、プロセスが繰り返されるのを避けるために構成ファイルが削除されます。
データベースパーティションの挿入
最後に、スタンドアロン パーティションを別のインストールに統合できます。
-
グローバル メニュー (
) で、 コントロール パネル → 構成 → システム設定に移動します。 -
プラットフォーム → 仮想インスタンス → ポータルインスタンス挿入に移動します。
-
会社 ID の挿入 フィールドにスタンドアロン パーティションの会社 ID を入力します。 ID はターゲット インストール内のどの ID とも異なる必要があります。
-
オプションで、 新しい名前、 新しい仮想ホスト名、および 新しい Web ID フィールドに入力して、新しいインストールでこれらのプロパティを変更します。
-
新しいサーバーを起動し、移行されたインスタンスが利用可能であり、期待どおりに機能していることを確認します。
あるいは、OSGi 構成を使用してパーティションを挿入することもできます。
-
com.liferay.portal.instances.internal.configuration.InsertPortalInstanceConfiguration.configという名前のファイルを作成します。 -
.configファイルに次のフィールドを書き込みます。insertCompanyId=L"12345" newName="aNewName" newVirtualHostname="aNewVirtualHostName" newWebId="aNewWebId"-
insertCompanyId: スタンドアロン パーティションの仮想インスタンス ID。 ID はターゲット インストール内のどの ID とも異なる必要があります。 -
newName(オプション): 仮想インスタンスを挿入するときに会社名を変更します。 -
newVirtualHostname(オプション): 仮想インスタンスを挿入するときに、仮想ホスト名を変更します。 -
newWebId(オプション): 仮想インスタンスが挿入されたときに、その Web ID を変更します。
-
-
設定ファイルを
[Liferay Home]/osgi/configsに移動してデプロイします。 -
新しいサーバーを起動し、移行されたインスタンスが利用可能であり、期待どおりに機能していることを確認します。
このプロセスは、 lextracted_[companyId] データベースの名前をスタンドアロン パーティションから lpartition_[companyId]に変更します。 次に、挿入により、プロセスが繰り返されないように構成ファイルが削除されます。
データベースパーティションのコピー
Liferay インストール内で仮想インスタンスをコピーすることもできます。
この機能は MySQL と PostgreSQL でのみ使用できます。
-
グローバル メニュー (
) で、 コントロール パネル → 構成 → システム設定に移動します。 -
プラットフォーム → 仮想インスタンス → ポータルインスタンスコピーに移動します。
-
[名前] フィールドに、スタンドアロン パーティションの会社 ID を入力します。 ID はターゲット インストール内のどの ID とも異なる必要があります。
-
「ソース会社 ID」フィールドに、コピーする仮想インスタンスの会社 ID を入力します。
-
仮想ホスト名フィールドに、仮想インスタンスのコピーの新しい仮想ホスト名を入力します。
-
Web ID フィールドに、仮想インスタンスのコピーの新しい Web ID を入力します。
-
古い仮想インスタンスを保持する場合は、[宛先会社 ID] フィールドにコピーの新しい ID を入力します。 このフィールドを空白のままにすると、古い仮想インスタンスが新しいインスタンスに上書きされます。
-
[保存]をクリックします。
-
コピーに新しい ID を選択しなかった場合は、古い仮想インスタンスを削除し、サーバーを再起動して、インスタンスが使用可能であり、期待どおりに機能していることを確認します。
あるいは、OSGi 構成を使用して仮想インスタンスをコピーすることもできます。
-
com.liferay.portal.instances.internal.configuration.CopyPortalInstanceConfiguration.configという名前のファイルを作成します。 -
.configファイルに次のフィールドを書き込みます。sourceCompanyId=L"12345" name="www.able.com" virtualHostname="www.able.com" webId="www.able.com"-
sourceCompanyId: コピーする仮想インスタンスのID。 -
destinationCompanyId(オプション): 仮想インスタンスのコピーの新しい ID。 -
name: 仮想インスタンスのコピーの新しい名前。 -
virtualHostname: 仮想インスタンスのコピーの新しい仮想ホスト名。 -
webId: 仮想インスタンスのコピーの新しい Web ID。
-
-
設定ファイルを
[Liferay Home]/osgi/configsに移動してデプロイします。 -
コピーに新しい ID を選択しなかった場合は、古い仮想インスタンスを削除し、サーバーを再起動して、インスタンスが使用可能であり、期待どおりに機能していることを確認します。