0

ユーザーを顧客データベースから liferay ポータルに移行するタスクが与えられました。

ユーザーを機能させるために、データを入力する必要があるすべての場所をすでに見つけることができました(USER_、USERS_GROUPS、CONTACT_、LAYOUTSET、EXPANDOVALUE)。

私が直面した唯一の問題はIDです。Liferay はそれらを生成するためにシーケンスを使用しません (少なくとも私は見つけていません) が、コードからそれらを生成するようです。さらに懸念されるのは、すべての ID (UserID、GroupId、RowID など) がテーブルの範囲内だけでなく、データベース全体で一意である必要があるようです。

データベースで最後に使用された ID を取得する方法と、スクリプトで使用された最後の ID を設定する方法を見つけて、Liferay がそれを再び使用しないようにする必要があります。

アプリケーション サーバーにはアクセスできず、データベースにしかアクセスできないため、API を使用できません...

4

1 に答える 1

1

まず最初にお聞きしたいのですが、なぜアプリケーション サーバーにアクセスできないのですか? データベース内のものを変更することは、ツールやマニュアルなしで現代の車を修理するようなものです。すべてを正しく行うことは可能ですが、API が通常考えていることを何か忘れると、すべてを台無しにする可能性もあります。

つまり、カウンター ID はCOUNTERname の行のテーブルに保存されますcom.liferay.counter.model.Counter。プロパティの値counter.increment(通常は 100) だけインクリメントされます。クラスCounterFinderImplをチェックして、Liferay がどのように使用しているかを確認してください。

Liferayは多くのもの、特に現在のカウンター値をキャッシュしているため、データベース内の何かを変更する前にサーバーが停止していることを確認してください。

于 2015-09-16T14:23:41.570 に答える