如何将 jackrabbit 持久性从文件系统切换到数据库?
-
26-09-2019 - |
题
我有一个 Liferay 门户,配置为使用 jackrabbit 的文件系统持久性。
看来这种持久化模式会在 文件系统 (到目前为止大约 113'000),我正在慢慢达到服务器的文件计数配额。
然后我想切换到 数据库 坚持。我知道怎么做 配置它 但 我不知道如何迁移现有内容.
导出和导入各种库(文档、图像等)听起来工作量很大,而且很容易出错,特别是因为它是多宿主部署。另外,我不知道它是否会为文档重新创建完全相同的 URL,这对我来说很重要。
简短更新:
我成功升级到 Liferay 6。然而,无法将 Liferay 内的长耳大野兔数据从文件系统迁移到数据库;数据迁移面板提供的是从 jcr 钩子迁移到另一个持久性钩子。
我最初的问题不是将数据存储在数据库中,而是减少文件系统上的文件数量(配额限制)。然后我切换到 FileSystemHook
.
这是文件计数(find . | wc -l
).
- JCR钩子:107566
- 文件系统挂钩:2810.
不知道为什么 Jackrabbit 创建这么多文件......
解决方案
在 Liferay 6 中,门户管理中有一个新的专用页面,旨在促进此类迁移。您必须以管理员身份登录(如果您的服务器中有多个门户实例,则为 omniadmin)并转到控制面板。在“服务器管理”面板中,单击“数据迁移”菜单,您将被要求从文件系统迁移到数据库。
看来您还没有使用 Liferay 6(Glassfish WebSpace Server 是 Liferay 5.2),因此有几个选项:
- 将门户本身从 5.x 升级到 6.0.5,如中所述 Liferay 维基 并使用迁移页面。
- 保留您的版本,并受 Liferay 版本 6 中提供的类的启发创建专用类
- 导出社区页面(Liferay ARchive),创建具有数据库持久性的新门户并导入页面及其内容。
迁移将是我的选择,要么使用整个门户(但很可能它不在您的路线图上),要么使用临时迁移类。
阿尔诺
其他提示
有多种迁移方法,其中大多数都记录在 长耳大野兔维基:
导出到 XML 可能不适用于大型存储库,因为它使用太多内存(您需要尝试)。我从未使用过其他迁移工具,因此无法对其进行评论。