問題
- 最新のHotfixをインストールしたところ、特定のページが削除されていることが判明しました。
- どうしてそんなことが可能なのでしょうか?
Environment
- DXP 7.0+
解決策
Hotfixは、Liferayのソースコードを変更する修正を含んでいます。
- つまり、他のもの、特にデータベースには触れないという意味です。 開発チームには厳しいルールがあり、 修正はデータベースに触れることができません。 本稿執筆時点では、Hotfixによってデータベース内の何かが削除されたケースは確認されていません。
- データベースのエントリーを変更する必要がある場合、 、エントリーを削除または修正するための追加のGroovyスクリプト を提供します。 これは、データベースがすでに変更されている可能性があるためで、この種のスクリプトはケースバイケースで提供するのがベストです。
- このため、 、 特別なHotfix を受け取り、「データベースのエントリーを一部変更します」というコメントが追加されていない限り、Hotfixによってページが削除されることはあり得ません。
- しかし、Hotfixをインストールする前に、念のため本番環境のデータベースとバンドルのバックアップを取ることをお勧めします。
- お客様のHotfixの中に、ページの動作に影響を与えるような関連する修正があるかどうか、サポートに確認することができます。
追加テスト
Hotfixによってページが削除されたと思われる場合、次に考えられる対処法を以下に示します:
-
Liferayのバニラバンドルと新しいデータベースを使用してHotfixをテストします。
- パッチレベルにバニラバンドルをセットアップする
- Liferayの開始
- 削除されたと思われるページと同じようなページをいくつか作る
- Hotfixをインストールする
- Liferayを再度起動する
- ページがあるかどうかを確認する
-
LiferayのバニラバンドルとデータベースのダンプでHotfixをテストする
前のステップ(ステップ1~6)を繰り返しますが、今回はデータベースのコピーで行います。
-
Liferayの構成とデータベースのダンプでHotfixをテストする
できるだけ既存の構成に近い構成にしてください。
データベースを接続し、これまでの手順(手順1~6)をテストしてください。
これらのテストは、Hotfixによってページが削除されるかどうかを証明するものです。
その他想定されるシナリオ
では、どうすればそのページが削除されるのでしょうか?
頻繁に起こりうる2つのシナリオがあります:
- ユーザーが誤って削除してしまった - ページなどの特定の資産は、ライブサイト でも直接手動で削除できるため、可能性があります。 ウェブコンテンツの記事も同様の仕組みになっています。
-
ステージングでページが削除され、この変更がライブサイトに公開されました。
変更を公開する前に、 Replicate Individual Deletions オプションがチェックされているかどうか確認してください。 もしそうで、Stagingで特定のページが削除されていた場合、パブリッシングを進めるとLive版でページが削除されます。