1

我需要升级基于 Zope 的旧系统,我需要能够将数据导出到 SQL Server 之类的东西...有谁知道我可以在 .NET 中打开 Zope DB 或直接将其导出到 SQL Server 的方法吗?

谢谢,基龙

4

2 回答 2

2

首先要注意的是 Zope 对象数据库 (ZODB) 在其层次结构中存储 Python 对象。因此,从 ZODB 中获取“数据”通常在 Python 语言之外没有意义。所以在某种程度上,这真的取决于你想要得到的数据类型。

如果您要查找的数据是文件(例如 HTML、文档等),您可以建立一个 Zope 服务器并打开 WebDAV 或 FTP 之类的东西,然后以这种方式提取文件。

但是,按照您描述的方式,我怀疑您寻求的数据是更细粒度的数据元素(例如数字或帐户或类似的东西)。在这种情况下,您几乎肯定需要某种 Python 来提取数据并将其转换为适合导入 SQL Server 的某种格式。您可能可以通过使用 IronPython 留在 .NET 世界中,但老实说,我会避免这种情况,除非您能找到 IronPython 与 ZODB 库一起使用的证据。

相反,我建议复制您的 Zope 安装和 zope 实例(这样您就不会破坏正在运行的系统),然后使用 Zope 使用的 Python 版本(通常一起安装)来挂载数据库,并将其操作到合适的格式。您甚至可以使用 PyODBC 之类的工具连接到 SQL Server 数据库以注入数据——或者您可以平底船、导出为某种文件格式,并使用您更熟悉的工具来导入数据。

我已经有一段时间没有与 ZODB 进行交互了,但我记得这篇文章有助于我与 ZODB 进行交互并了解它的结构。

祝你好运!

于 2010-03-13T13:47:53.593 回答
2

我是一名 Plone 网络开发人员,Jason Coombs 是正确的。ZODB 是一个对象数据库,包含 python 对象。这些对象可以是 python 代码、数据、元数据等,并存储在层次结构中。这与 SQL 表和存储过程的世界非常不同。(不断增长的 NoSQL 运动表明,Zope 并不是唯一这样做的人。)此外,由于这些是复杂的 Python 对象,您真的希望使用创建它的 Python 版本在 ZODB 上工作,或者确保您可以进行适当的迁移。我认为您无法使用 IronPython 做到这一点。

在不知道你想从 ZODB 中得到什么的情况下,很难给出具体的建议。正如 Jason 所建议的,尝试对 ZODB 的 WebDAV/FTP 访问可能就是您所需要的。这允许提取页面或图像文件的基本内容,但您可能会丢失许多更复杂的数据(例如,事件页面可能未包含其所有日期时间数据)并且您将丢失大部分元数据-数据。

以下是有人从 Plone 迁移到 Word press 的方式:

http://www.len.ro/2008/10/plone-to-wordpress-migration/

有许多关于从一个 Plone 版本迁移到另一个版本的文章。其中一些信息可能对您有用。stackoverflow 不允许我发布更多链接,但可以搜索:

“当克隆迁移失败时,仅进行内容迁移”

“克隆产品内容迁移”

于 2010-03-13T15:51:22.820 回答