Upgrading Liferay
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

データベースの移行

サポート、メンテナンス、またはパフォーマンス上の理由から、現在使用しているデータベースから、Liferayがサポートする他のデータベースに移行することを決定する場合があります。 Liferay DXPは、PostgreSQLへの移行をサポートするツールを提供しています。 その他の対象については、具体的な手順やツールはドキュメントの範囲外ですが、データベースを移行する際に避けるべき落とし穴がいくつかあります。

Liferay は サービス ビルダーを介してデータベースにアクセスします。このサービス ビルダーは、Liferay のデータ型をサポートされているデータベースの最も適切な列型にマッピングします。 データベースを移行する際、スキーマ定義やデータを移行するために様々なサードパーティ製ツールが使用されることが多いのですが、そこに落とし穴があります。これらのツールはLiferayのデータマッピングについて何も知らないのです。 移行作業を行う際に、列の型や命名規則を誤って選択する可能性が非常に高い。

例えば、Liferayはデータベースごとに異なる型を想定しています。

LiferayタイプDB2MySQLオラクルPostgreSQLSQL Server
ブール値スモールイント小さな整数数値(1, 0)ブール値少し
長さビギントビギント数値(30,0)ビギントビギント
文章クロブ(2G)長文クロブ文章nvarchar(max)
バリアクルvarcharvarcharvarchar2varcharnvarchar

さらに、Liferayのテーブル名と列名の命名規則はデータベースごとに異なります。

PostgreSQL: 小文字 → レイアウトセット および ヘッドID

OracleとDB2: 大文字 → LAYOUTSET と HEADID

SQL Server: 変更なし → LayoutSet および headId

MySQL: データベース環境とその lower_case_table_names 設定に依存します

サードパーティ製のツールを使用してサポート対象外のデータベースに移行する場合、次の3つの問題が発生する可能性があります。

  1. 列が間違ったデータ型にマッピングされている可能性があります(Oracle では varchar が varchar2 の代わりに、PostgreSQL では bool の代わりに数値型になっているなど)。

  2. テーブル名や列名が、誤った命名規則を使用して作成されている可能性があります。

  3. インデックス名が失われる可能性があり、その場合、インデックス名を再作成する必要が生じた際にパフォーマンスの問題が発生します。

こうした理由から、サードパーティ製の移行ツールはデータ移行にのみ推奨され、スキーマ移行には推奨されません。

PostgreSQLへの移行

LiferayのデフォルトデータベースはPostgreSQLです。 Liferay DXPには、DB2、MariaDB、MySQL、Oracle、またはSQL ServerデータベースをPostgreSQLに移行するためのサポートツールが含まれています。 手順の詳細については、 データベースを PostgreSQL に移行する を参照してください。

サポートされている任意のデータベースへの移行

Liferayにスキーマを作成させてからデータを移行させることで、サポートされている任意のデータベースに移行できます。

  1. Liferay 用の新しいデータベース を設定します。

  2. Liferay を起動し 、前の手順で設定した新しいデータベースを指定します。 Liferayはデータベース内にスキーマを作成します。

  3. Liferayを停止してください。 データベースに接続し、SQL を使用してデータベース内のすべてのテーブルのデータを削除します (つまり、 TRUNCATE TABLE [Table]; または DELETE FROM [Table]; を使用します)。 これで、新しいデータベースに空のLiferayスキーマが作成されました。

  4. 古いデータベースから新しいデータベースへデータを移行し、古いデータベースの既存のテーブル名と列名を新しいデータベースにマッピングします。

アップグレードする場合

Liferayのアップグレードと同時にデータベースを移行する場合は、まず古いバージョンのLiferay上でデータベースを移行してください。 アップグレードを試みる前に、新しいデータベース上でLiferayが期待どおりに動作することを確認してください。