バックアップページからのデータの復元
プロジェクト開発の過程で、データの復元やプロジェクトを以前の状態に戻す必要が生じる場合があります。 バックアップをある環境に復元しても、各サービスのデータは復元されますが、環境が使用しているビルドは変更されません。
また、カスタムSQLスクリプトを使用して、データ復元の一環としてデータベースの追加更新を行うこともできます。
バックアップサービスがバージョン5.xより古い場合、一時的にサービスが停止する可能性があります。
選択した環境のAdminロールを持つユーザーのみが、Liferay Cloudコンソールを介して環境を手動で復元できます。
バックアップページから環境を復元する
各環境の バックアップ ページには、最近取得されたすべてのバックアップ(自動および手動)のリストがあります。 このページから環境へバックアップを復元すると、各サービスが使用しているデータは復元されますが、各サービスが使用しているビルドやDockerイメージは変更されません。
復元するバックアップの バックアップ サービス バージョンは、復元前にターゲット環境と一致している必要があります。そうすることで、復元が正常に完了します。 Liferay フィックスパックレベル も一致している必要があります。そうしないと、データベーススキーマの不一致によるエラーが発生します。 現在環境に導入されているものとは異なるビルドを必要とするバックアップをリストアする場合は、リストアを開始する前に 適切なビルドを導入してください。
以下の手順で、バックアップから環境を復元します。
-
プロジェクトの選択した環境に移動します。
-
画面左側の環境メニューにある[Backups]をクリックします。
-
プロジェクト環境の復元に使用したいバックアップの アクション ボタン(⋮)をクリックします。
-
をクリックして… に戻します

-
データベースのバックアップのみを復元する場合は、このチェックボックスをオンにしてください。 これは、ストレージコストを削減し、非本番環境を最適化するために、データベーススキーマの変更をテストする際に役立ちます。
警告データベースのみの復元は、本番環境では推奨されません。 ドキュメントライブラリを含めずにバックアップを復元すると、処理速度は速くなりますが、データベースとドキュメントライブラリの同期がずれてしまう可能性があります。
-
ドロップダウンの [Environment] メニューをクリックして、復元したい環境を選択します。
注管理者は、アクセスできる環境のみを復元できます。
-
下に表示される チェックボックス をすべてクリックします。 復元を開始するボタンを有効にするには、これらのボックスをチェックする必要があります。
-
[Restore to Environment] をクリックして、復元処理を開始します。

復元処理中、対象環境のサービスが再起動されます。
バックアップサービスの ログ や、アクティビティページの 一般 セクションで、復元のステータスを追跡することができます。
データ復元でのカスタムSQLスクリプトの適用
また、カスタム SQL スクリプトを使用して、通常のデータ復元でデータベースの追加更新を行うこともできます。 この方法では、別々に管理しているデータベースのバックアップにスクリプトを適用できるため、機密データのサニタイズに最適です。
SQLスクリプトは以下の形式をサポートしています。
.sqlは個々のスクリプトに使われます。.zip、.tgz、.gzは、圧縮ファイル内の複数のスクリプトに使用されます。
PostgreSQL用のSQLスクリプトの準備
PostgreSQL のスクリプトは、シークレット lcp-secret-database-name で指定されたデータベースでのみ実行されます。 修飾子なし、またはパブリックスキーマを使用してテーブルを指定します (例: update journalarticle または update public.journalarticle)。
lcp-secret-database-user シークレットで指定されたデータベースユーザーは、 psql コマンドを使用して、以下のオプションでスクリプトを実行するために使用されます。
--single-transaction: すべてのコマンドを 1 つのトランザクション内で実行します。-v ON_ERROR_STOP=1: 発生したすべてのエラーに対してスクリプトの実行を強制的に停止し、復元プロセスでエラーを報告します。
バックアップログには、スクリプトの実行に関する詳細が表示されます。例えば、次のようになります。

スクリプトの実行中にエラー(構文エラーなど)が発生すると、復元プロセスが失敗し、そのエラーが復元ログに記録されます。 エラーの例を以下に示します。

SQL スクリプトを、適切な環境固有の backup/configs/[ENV]/scripts/ フォルダーに配置します。 スクリプトは英数字順に実行されることに注意してください。
MySQL用のSQLスクリプトの準備
MySQL 用のスクリプトでは、実行するデータベースを正確に参照する必要があります (例: USE lportal; または lportal.User_)。
SQL スクリプトを、適切な環境固有の backup/configs/[ENV]/scripts/ フォルダーに配置します。 スクリプトは英数字順に実行されることに注意してください。
データの復元の実行
SQLスクリプトの準備ができたら、以下の手順でカスタムSQLスクリプトをデータリストアに適用します。
-
上記の バックアップページからの環境の復元の手順に従ってください。
データベースが復元されると、バックアップ サービスの scripts フォルダにあるSQLスクリプトが実行されます。
Jun 20 14:46:41.795 build-39 [backup-57488f8b8-rjq4f] Running Script: SanitizeOrg.sql
Jun 20 14:46:41.970 build-39 [backup-57488f8b8-rjq4f] Running Script: SanitizeUsers.sql