Найти количество сайтов в Liferay, используя SQL - PullRequest
0 голосов
/ 22 октября 2018

Я хочу знать количество сайтов в экземпляре Liferay.

Если бы у меня был доступ к веб-интерфейсу, я бы пошел на Configuration, затем Sites и увидел бы их количество, но я неУ меня нет доступа к веб-интерфейсу, у меня есть доступ только к базе данных MySQL.

Когда я запускаю SELECT COUNT(*) FROM Group_;, я получаю 16584, что явно слишком много, поскольку я ожидаю, что в экземпляре будет около ста сайтов.Когда я смотрю на детали, я вижу, что на 16584 сайтах есть «сайты», такие как /name-surname для каждого пользователя.

Вопрос : Используя только запросы MySQL, как найти число«реальных» сайтов Liferay?Это число должно соответствовать (или почти соответствовать) номеру, который будет видеть администратор, просматривающий список в Configuration> Sites.

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Вы, вероятно, ожидаете, что я не дам этого ответаЯ решил попробовать, но только после важного отказа от ответственности.Вы (Николас), вероятно, знаете, чего ожидать, но, поскольку это также будет найдено другими, я чувствую, что это важная информация:

В общем, вы не должны пытаться понять структуру базы данных Liferay -особенно не потому, что это может привести к искушению до записи в него (потому что вы предполагаете, что понимаете это).При этом случайный доступ для чтения может быть проще, чем (довольно подходящий) доступ к API.Вкратце: используйте API, когда это возможно.

Посмотрите на структуру базы данных: вы обнаружите, что таблица имеет флаг «Сайт», который, кажется, более или менее коррелирует с неличными сайтами ине-шаблоны.Он также включает в себя «глобальный» сайт, а также нет других отношений, на которые вы не будете обращать внимание при выборе данных из GROUP_ (например, разрешения и т. Д.). Кроме того, вы не упоминаете, если вы толькопереходя на «независимые» (на высшем уровне) сайты или «организационные сайты».Но с этой информацией вы должны иметь основную информацию, чтобы выяснить, что вам нужно.

0 голосов
/ 23 октября 2018

Исходя из идеи Гэвина, вот запрос, который дает мне примерно [1] те же сайты, которые можно увидеть в Configuration> Sites:

SELECT groupId, friendlyURL FROM Group_ WHERE type_=1 OR type_=2;

Есть также много сайтов с типами 0, я думаю, это для пользователей.

[1]: сайты с типом 3 - настоящая головная боль.Большинство из них LFR_ORGANIZATION и не появляются в Configuration> Sites, но в этом списке появляются некоторые DO, возможно, те, чье имя не заканчивается на LFR_ORGANIZATION.

0 голосов
/ 22 октября 2018

Используя таблицу Group_, выберите на основе записей со значением «site» 1. Это должно дать вам результаты, которые соответствуют Configuration> Sites.

...