問題
- リモート ステージング サイトが削除されたか正しく無効にされていない場合、ライブ サイトのデフォルト機能を回復する方法は?
Environment
- Liferay DXP 7.2
解決策
- groovy-script を実行することで、Live サイトのデフォルト機能を有効にすることができます。
- 先に進む前に、データベースのバックアップを作成してください。 解決によりデータベースが変更されるため、セキュリティ上の理由から保存する必要があります。
- 別々のデータベースで 2 つのバニラ Liferay 7.2 バンドルを開始します。
- bundle1 に「Staging」というサイトを作成し、bundle2 に「Live」というサイトを作成します。 これらを Remote Staging 経由で接続します。
- bundle1 の削除 -> 'Staging'.
- bundle2 -> 'Live'に移動します。 ここで、コントロール パネル --> コンテンツ内で、新しい Web コンテンツ記事を追加できないことがわかります。 これは、'Live' サイトが 'Staging' サイトから無効にされていないためです。
- 完全に確認するために、bundle2 からデータベースを確認してください。 'Live' サイト --> 'group_' テーブルで、'remoteStagingGroupCout' 列を確認します。 値が「0」の場合、この記事の解決策は役に立ちません。 値が「1」の場合は、次の手順に進んでください。
- コントロール パネル --> 構成 --> サーバー管理 --> スクリプトに移動します。 ここで、以下のコードをコピーして貼り付けて実行します。
import com.liferay.portal.kernel.service.GroupLocalServiceUtil;
long liveGroupId = [SiteID];
try {
GroupLocalServiceUtil.disableStaging(liveGroupId);
println("Staging disabled.");
}
catch(Exception e) {
println("Could not disable staging.");
}
- スクリプトを実際に実行するには、'[SiteID]' を実際の SiteID 値に置き換えてください。
- これにより、「remoteStagingGroupCout」が値「0」に設定されます。これは、特定のサイトが Remonte Staging を介して他のサイトに接続されていないことを意味します。
追加情報
- 上記のアプローチは、Liferay Portal 6.2、Liferay DXP 7.0、および Liferay DXP 7.1 で機能します。 ただし、パッケージ名 (com.liferay.portal.kernel.service.GroupLocalServiceUtil) が Liferay のバージョンごとに変更されるため、スクリプトに小さな変更が必要になる場合があります。 ご不明な点がございましたら、カスタマーサポートチームまでお気軽にお問い合わせください。