エラー "No Group exists with primary key xxxxxx "のためアップグレードに失敗しました。

問題

  • 7.0 de-98から7.4へのデータベースアップグレードを行ったところ、以下のエラーでアップグレードに失敗しました:
    ERROR [main][ReleaseManagerImpl:183] Failed upgrade process for module
    com.liferay.dynamic.data.mapping.service
    com.liferay.portal.kernel.upgrade.UpgradeException: com.liferay.portal.kernel.exception.NoSuchGroupException: No Group exists with the primary key 3208897
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:136)b ~[portal-kernel.jar:?]
    ......

環境

  • Liferay DXP 7.0, Liferay DXP 7.3

解像度

  • このエラーは、DDMStructureテーブルの一部のデータが、Group_テーブルに存在するgroupIdを持っていないことを意味します。
  • 添付のGroovyスクリプトを使用して、孤児となったデータをクリーニングしてください。
  • ステップ:
    1. データベースをバックアップする
    2. コントロールパネル > 設定 > サーバー管理 > スクリプトに移動します。
    3. 添付のスクリプトの内容をコピーして、textareaに貼り付けます。
    4. スクリプトが正常に実行され、以下のようにログにメッセージが表示されるはずです:
      2023-04-21 00:51:21.778 INFO [http-nio-8080-exec-8][DeleteOrphanedDDMStructureLayouts:?]
      Deleting DDM structure layout 3210052 as its group id does not exist…

追加情報

  • Liferay DXP 7.0 de-98、Liferay DXP 7.3 SP3でスクリプトは正常に実行されます。 他のDXPのバージョンでも動作する可能性があります。 データベースのバックアップやスクリプトのテストは、お客様のご判断で行っていただいて結構です。

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています