генератор идентификаторов liferay по базе данных

Мне дали задание перенести пользователей из базы данных клиентов на портал liferay.

Мне уже удалось найти все места, которые мне нужно заполнить данными, чтобы сделать пользователя функциональным (USER_, USERS_GROUPS, CONTACT_, LAYOUTSET, EXPANDOVALUE).

Единственная проблема, с которой я столкнулся, - это идентификаторы. Liferay не использует последовательность для их генерации (по крайней мере, я ее не нашел), а, похоже, генерирует их из кода. Что еще более важно, похоже, что все идентификаторы (UserID, GroupId, RowID и т. д.) должны быть уникальными не только в пределах таблицы, но и всей базы данных.

Мне нужно найти способ получить последний использованный идентификатор в базе данных и способ установить последний идентификатор, используемый моим скриптом, чтобы Liferay больше не использовал его.

У меня нет доступа к серверу приложений, только к базе данных, поэтому я не могу использовать API...


person khartvin    schedule 16.09.2015    source источник


Ответы (1)


Прежде всего я хотел бы спросить, почему у вас нет доступа к серверу приложений? Вносить изменения в базу данных — это как ремонтировать современный автомобиль без инструментов и инструкции. Можно все сделать правильно, но можно и все испортить, если вы забудете что-то, о чем обычно думает API.

При этом: Идентификатор счетчика сохраняется в таблице COUNTER в строке с именем com.liferay.counter.model.Counter. Он увеличивается на значение свойства counter.increment (обычно 100). Проверьте класс CounterFinderImpl, чтобы увидеть, как Liferay его использует.

Прежде чем что-либо изменять в базе данных, убедитесь, что сервер остановлен, так как Liferay кэширует многие данные, особенно текущее значение счетчика.

person Tobias Liefke    schedule 16.09.2015
comment
Спасибо за ответ Тобиас! Я уже нашел таблицу счетчиков, но поскольку хранящееся в ней значение не совсем соответствовало значениям, которые я видел в таблицах, я не был уверен, что это правильный путь. Случай доступа к серверу приложений довольно политический (в деловом смысле), и все, что я знаю, это то, что я должен делать это только через базу данных. - person khartvin; 17.09.2015