我需要升级基于Zope的旧系统,我需要能够将数据导出到像SQL Server这样的东西......有谁知道我可以在.NET中打开Zope DB或者直接导出它的方式到SQL Server?
谢谢, 基隆
答案 0 :(得分: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互动以来已经有一段时间了,但我记得this article帮助我与ZODB互动并理解其结构。
祝你好运!答案 1 :(得分:2)
我是Plone网站开发人员,Jason Coombs是正确的。 ZODB是一个对象数据库,包含python对象。这些对象可以是python代码,数据,元数据等,并存储在层次结构中。这与SQL表和存储过程的世界非常不同。 (不断增长的NoSQL运动,表明Zope并不是唯一一个这样做的人。)此外,由于这些是复杂的python对象,你真的想在ZODB上使用它创建的python版本,或者确保你可以做一个适当的迁移。我不认为你能用IronPython做到这一点。
如果不知道你想要从ZODB中获得什么,很难给出具体的建议。正如Jason建议的那样,尝试使用WebDAV / FTP访问ZODB可能就是您所需要的。这允许提取页面或图像文件的基本内容,但是您可能会丢失大部分更复杂的数据(例如,事件页面可能没有包含所有日期时间数据)并且您将丢失大部分元数据-data。
以下是有人从Plone迁移到Word的方式:
http://www.len.ro/2008/10/plone-to-wordpress-migration/
有很多关于从一个Plone版本迁移到另一个版本的文章。其中一些信息可能对您有用。 stackoverflow不允许我发布更多链接,但搜索:
“当plone迁移失败时仅执行内容迁移”
“Plone Product ContentMigration”