問題
ランニングg! upgrade:コンポーネントが正常に移行されなかったことが判明したことを確認します。出力は次のとおりです。
ServiceBuilder.serviceで利用可能な0.0.0から1.0.0へのアップグレードプロセスがあります
アップグレードを実行すると、同様のエラーが表示されます。
com.liferay.portal.kernel.upgrade.UpgradeException: Bundle ServiceBuilder.service_1.0.0 [93] has invalid content in indexes.sql:
create index IX_F27B1EFC on marketnotice (isEnglish);
create index IX_441C90FD on marketnotice (marketNoticeId);
create index IX_6415039A on marketnotice (uuid_[$COLUMN_LENGTH:75$]);
at com.liferay.portal.spring.extender.internal.context.ModuleApplicationContextExtender$ModuleApplicationContextExtension$1.upgrade(ModuleApplicationContextExtender.java:350)
at com.liferay.portal.upgrade.internal.release.osgi.commands.ReleaseManagerOSGiCommands$UpgradeInfosRunnable.run(ReleaseManagerOSGiCommands.java:539)
... 32 more
Caused by: java.sql.SQLException: ORA-01408: such column list already indexed
環境への配慮
- ポータル 6.2
- DXP7.
- DXP 7.1
- DXP7.
決議
この場合、 service.xmlに marketNoticeId というfinder要素が存在することが問題の原因です。
DBでは、 marketnotice テーブルの主キーが marketNoticeIdであることがわかります。 marketnotice テーブルの主キーである marketNoticeId フィールドは、そのフィールドを持つ要素を取得するためのインデックスとメソッドをすでに持っています。 したがって、この場合はこのファインダーは必要ありません。
解決策としては、前述のファインダーを削除し、カスタムモジュールを再配備することです。 あるいは、オプションでfinder要素のdb-index属性の値を falseに設定することもできます。