我想知道Liferay实例中的站点数。
如果我可以访问Web UI,则可以转到Configuration
然后访问Sites
并查看其编号,但是我无权访问Web UI,我只能访问MySQL数据库。
当我运行SELECT COUNT(*) FROM Group_;
时,我得到16584,这显然太多了,因为我期望实例具有大约一百个站点。当我查看详细信息时,我看到16584个站点为每个用户包括了/name-surname
之类的“站点”。
问题:仅使用MySQL请求,如何找到“实际” Liferay网站的数量?该数字应匹配(或几乎匹配)管理员在Configuration
> Sites
上查看列表时看到的数字。
答案 0 :(得分:1)
您可能希望我拒绝给出这个答案。我决定尝试一下,但要经过一个重要的免责声明。您(尼古拉斯)可能知道会发生什么,但是由于其他人也会发现这一点,因此我认为这是至关重要的信息:
通常,您不应该尝试了解Liferay的数据库结构-尤其是因为这可能会导致诱惑 写入(因为您假设理解了)它)。话虽这么说,偶尔的读取访问可能比(相当合适的)API访问更容易。简而言之:尽可能使用API。
查看数据库结构:您会发现该表具有“站点”标志,该标志似乎与非个人站点和非模板或多或少相关。它也包括“全局”站点,并且在从GROUP_选择数据时没有其他关系(例如权限等)不会引起您的注意-另外,如果您只是前往“独立”(顶级)网站或“组织网站”。但是,有了这些信息,您应该具有基本信息来弄清楚您的需求。
答案 1 :(得分:0)
使用Group_表,基于“站点”值为1的条目进行选择。 那应该给您结果对应于配置>站点。
答案 2 :(得分:0)
基于加文的想法,这是给我大致 [1]与Configuration
> Sites
相同的网站的请求:
SELECT groupId, friendlyURL FROM Group_ WHERE type_=1 OR type_=2;
也有很多类型为0的网站,我猜这些都是针对用户的。
[1]:类型3的网站确实令人头疼。其中大多数是LFR_ORGANIZATION
,不会出现在Configuration
> Sites
中,但是某些DO会出现在该列表中,也许名称不以LFR_ORGANIZATION
结尾的DO。 / p>