跨数据库的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 正在缓存很多东西,尤其是当前计数器值。
我接到一项任务,将用户从客户数据库迁移到 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 正在缓存很多东西,尤其是当前计数器值。