从 Liferay 数据库中删除内容

Removing content from Liferay database

CONTEXT: 我们正在使用 Liferay6.1SQL 服务器开发一个门户项目12 数据库。每次生产发布时,我们都会用生产数据库刷新我们的集成和开发数据库。由于生产数据库的大小非常大,我们希望精简数据库(可能通过删除内容)并拥有一个较小的数据库。 此外,我们希望开发人员在需要较小数据库的本地系统上设置他们的开发环境。

问题:如何在不影响门户功能的情况下剥离 liferay 数据库?有什么建议吗?回馈?

当你说 "strip down the liferay database" 时,我相信你只需要社区、WC、结构、模板、组织等门户配置。如果是这样的话,你几乎可以通过以下方式导出它们中的每一个控制面板并将它们导入您的本地环境。如果您需要任何其他自定义数据,您几乎可以将控制面板屏幕写入 export/import 它们。这样您就可以控制要在您的环境中导入的内容。否则,可选择 DB table export/import。最重要的是,这一切都取决于您最终需要的 local/DEV 环境和 运行.

如果您有很多自定义对象并且它们与 Liferay 紧密耦合,则剥离数据库将需要更多的努力。 Export/Import 功能不适用于自定义对象,您需要为它们编写数据处理程序,如果您有大量数据,使用 lar 到 import/export 数据可能无济于事。在对数据库进行条带化之前,您需要考虑所有方面,因为如果您错过了从其他表中删除的数据的一些引用,您将面临不同的问题。

Web 内容存储在 JournalArticle table 中,但不建议在数据库中进行手动更改。您可以在控制面板中执行 Groovy 脚本来删除最旧和过期的 Web 内容。

您可以从以下位置获取脚本:

https://github.com/atrujillofalcon/liferay-clean-journal-history

您应该将您的门户模式/数据库和应用程序模式/数据库分开。然后将你们其中一个非生产服务器与两个数据库连接起来。按照以下步骤

  1. 创建最小的门户配置,如网站、用户。布局和 portlet。这将减少门户数据的大小。
  2. 导出门户架构/数据库。
  3. 将导出的数据库文件和 liferay-home\data\document_library 目录保存为配置的基线副本。
  4. 您可以根据需要更新基线文件。

现在要复制,您应该导入门户架构\数据库并将 document_library 目录放在 liferay-home\data 中。连接到应用程序模式\数据库并启动服务器。

解决方案还需要流程导向,我建议您应该围绕解决方案制定流程。