跨数据库的liferay id生成器

liferay id generator accross the database

我接到一项任务,将用户从客户数据库迁移到 liferay 门户。

我已经设法找到所有需要填充数据的地方,以使用户正常工作(USER_、USERS_GROUPS、CONTACT_、LAYOUTSET、EXPANDOVALUE)。

我遇到的唯一问题是 ID。 Liferay 不使用序列来生成它们(至少我还没有找到),但似乎是从代码中生成它们。更令人担忧的是,看起来所有 ID(UserID、GroupId、RowID 等)不仅在 table 范围内而且在整个数据库范围内都需要唯一。

我需要找到一种方法来获取数据库中最后使用的 ID 以及设置我的脚本最后使用的 ID 的方法,以便 Liferay 不再使用它。

我无权访问应用程序服务器,只能访问数据库,这就是我无法使用 API...

的原因

首先我想问一下,为什么你无法访问应用服务器?更改数据库中的内容就像在没有工具和手册的情况下修理现代汽车。把所有事情都做好是可能的——但如果你忘记了 API 通常想念的任何事情,也有可能把事情搞砸。

话虽如此: 计数器 ID 保存在名称为 com.liferay.counter.model.Counter 的行的 COUNTER table 中。它按 属性 counter.increment 的值递增(通常为 100)。检查 class CounterFinderImpl 以了解 Liferay 如何使用它。

确保在修改数据库中的任何内容之前停止服务器 - 因为 Liferay 正在缓存很多东西,尤其是当前计数器值。