Sql server 2012 如何将数据从Magnolia CMS Apache Jackrabbit内容存储库迁移到普通SQL SERVER数据库

Sql server 2012 如何将数据从Magnolia CMS Apache Jackrabbit内容存储库迁移到普通SQL SERVER数据库,sql-server-2012,jackrabbit,magnolia,Sql Server 2012,Jackrabbit,Magnolia,我不熟悉Magnolia CMS和Apache Jackrabbit内容存储库概念 有一个web应用程序正在使用Magnolia CMS。Magnolia使用SQL SERVER 2012数据库作为持久性管理器。 这里完成了apachejackrabbit内容存储库的实现。Magnolia CMS有两种独立的配置,用于应用程序,称为public和author实例 现在,我们正试图用一个具有所有功能的定制ASP.NET MVC 5应用程序替换现有的Magnolia CMS 我分析了SQL SERV

我不熟悉Magnolia CMS和Apache Jackrabbit内容存储库概念

有一个web应用程序正在使用Magnolia CMS。Magnolia使用SQL SERVER 2012数据库作为持久性管理器。 这里完成了apachejackrabbit内容存储库的实现。Magnolia CMS有两种独立的配置,用于应用程序,称为public和author实例

现在,我们正试图用一个具有所有功能的定制ASP.NET MVC 5应用程序替换现有的Magnolia CMS

我分析了SQL SERVER数据库中的表,发现以Node_ID和Bundle_数据格式存储的数据非常难以分析。 简言之,这是不容易解释的

在定制CMS的基础上,开发了一个新的作者实例数据库模型(SQL SERVER 2012)

因此,作为迁移任务的一部分,我正在尝试将使用Apache Jackrabbit内容存储库实现存储在SQL SERVER中的旧数据迁移到普通SQL SERVER 2012(根据新的数据库模型)


有人能帮我了解一下,是否有任何经验证的方法或工具可用于完成这项任务。

问题更多的是jackrabbit方面,而不是Magnolia方面,特别是因为您希望完全替换Magnolia,而不仅仅是持久层:

现在,我们正在尝试用一个 具有所有功能的自定义ASP.NET MVC 5应用程序

虽然我的问题实际上是您是否真的想完全取代Jackrabbit,还是仍然在ASP.NET应用程序中使用Jackrabbit,但使用MS SQL Server数据存储(这将是我个人的建议)?否则你将失去Jackrabbit的所有好处

Jackrabbit确实支持SQL Server,我建议使用它

:

目前支持的有:db2、derby、h2、mssql、mysql、oracle、, sqlserver

只使用ASP.NET和SQL Server开发一个WebCM,中间没有内容存储库层,这听起来像是从头开始开发WebCM通常附带的所有功能,特别是如果您想拥有Magnolia提供的所有功能(版本控制、历史记录、搜索等)

您可以在此处查看有关Jackrabbit数据存储的详细信息:尽管我想知道您或您的客户为什么希望将内容存储库的数据存储更改为SQL Server。我猜您不是在说使用MySQL来持久化元数据,而是真正地存储二进制内容(另一个基于Java的开源WebCM OpenCms在其架构设计中犯了一个错误——imho)

请注意,通常大型文件不是存储在数据库本身(使用Magnolia)中,而是存储在文件系统中

:

默认情况下,当BLOB超过 在您的Jackrabbit配置中定义了某些阈值-取而代之 它们保存在文件系统中。应用程序使用的默认阈值 Magnolia安装为1024字节。所有文件都高于定义的 阈值放在文件系统中,而不是数据库中

如果您真的想完全摆脱Jackrabbit,只使用SQL Server作为持久层,并在其中存储所有二进制内容,而不考虑大小(不推荐),我将为它编写一个自定义导出/导入脚本,它将查询Jackrabbit repo(标准协议)并从文件系统获取内容,读取为FileInputStream,然后将其写入Oracle数据库(示例:)。这将是我建议的方法


我不认为有任何现成的工具可以解决这个问题。

问题更多的是在jackrabbit方面,而不是在Magnolia方面,特别是因为您希望完全替换Magnolia,而不仅仅是持久层:

现在,我们正在尝试用一个 具有所有功能的自定义ASP.NET MVC 5应用程序

虽然我的问题实际上是您是否真的想完全取代Jackrabbit,还是仍然在ASP.NET应用程序中使用Jackrabbit,但使用MS SQL Server数据存储(这将是我个人的建议)?否则你将失去Jackrabbit的所有好处

Jackrabbit确实支持SQL Server,我建议使用它

:

目前支持的有:db2、derby、h2、mssql、mysql、oracle、, sqlserver

只使用ASP.NET和SQL Server开发一个WebCM,中间没有内容存储库层,这听起来像是从头开始开发WebCM通常附带的所有功能,特别是如果您想拥有Magnolia提供的所有功能(版本控制、历史记录、搜索等)

您可以在此处查看有关Jackrabbit数据存储的详细信息:尽管我想知道您或您的客户为什么希望将内容存储库的数据存储更改为SQL Server。我猜您不是在说使用MySQL来持久化元数据,而是真正地存储二进制内容(另一个基于Java的开源WebCM OpenCms在其架构设计中犯了一个错误——imho)

请注意,通常大型文件不是存储在数据库本身(使用Magnolia)中,而是存储在文件系统中

:

默认情况下,当BLOB超过 在您的Jackrabbit配置中定义了某些阈值-取而代之 它们保存在文件系统中。应用程序使用的默认阈值 Magnolia安装为1024字节。所有文件都高于定义的 阈值放在文件系统中,而不是数据库中

万一你真的想除掉Jac