将旧的plone或google站点内容迁移到当前plone 4

ilrt.contentmigrator的Python项目详细描述


ILRT内容迁移器

Ed Crewe,布里斯托尔大学,2014年10月,ILRT

核心功能应该允许在任何plone版本之间进行迁移。

XML格式应该允许迁移到大多数其他CMS,假设任何现代CMS 应该以某种方式处理XML内容导入。

有一个工具可以将plone导出的站点迁移到 谷歌网站或反之亦然,请参见http://sites.google.com 要么将传统的plone站点迁移到免费托管,要么增加 一个网站的定制级别,超出谷歌网站的权限。不管怎样我希望这样 工具可能会证明是相互有益的。

TOdo:将XML格式的导入/导出处理添加到CMIS架构以获取更多信息 通用标准符合性。再加上WordPress导出格式等。

Mercurial源请参见http://bitbucket.org/edcrewe/ilrt.contentmigrator" rel="nofollow">http://bitbucket.org/edcrewe/ilrt.contentmigrator。 存储库、问题跟踪程序等。

注意:导出在一定程度上适用于所有plone版本。

从plone 3.*版本0.6更新到plone 4.*兼容版本1.6 在0.6和1.6之间没有功能变化,在 plone export/import只是额外的版本兼容性调整和更新 测试套件。

版本1.7-1.13进一步的功能调整和XML兼容性更改。

用plone从2.0到4.3.3进行测试

概述

这个鸡蛋和它包含的配套产品是为了迁移内容而编写的 从前原型倍体2.0位点(或更高)到当前倍体。

contentmigrator egg扩展了通用设置内容导入系统 处理二进制文件和自定义内容。因此 站点可以由profiles结构中保存的文件系统内容生成 文件夹.

egg遵循现有通用设置的范例,但添加了工作流 属性元数据的状态。 它还为每个二进制内容项添加 .ini文件,以便它们可以 导入和导出所有相关的元数据。

它包含一个配套的老式plone产品。这个可以放进 旧plone站点中的产品文件夹。 该站点获得一个portal_exportcontent工具。从中运行导出 工具将内容导出到var目录中的结构文件夹 用于填充当前plone站点,从而迁移内容。

概念

由于需要迁移大量的obselete,代码已经到达 在研究过这个问题后,发现大多数工具都假设 在过去几年中的版本,其中原型,5,marshall和xml,或者 位置内容迁移是可行的。

相反,代码采用了Andreas Jungs在博客中所讨论的方法 plone迁移失败-仅执行内容迁移

使用内容迁移器

将ilrt/contentmigrator/contentmigrator复制到 旧址。重新启动,应该列出"内容迁移器工具" 在右边的内容下拉列表中。选择此项并将其添加到门户。

您的站点中将有一个新的门户导出内容工具。选择此并选择 "导出内容"选项卡。 单击export并等待站点成为var/zope/structure中的文件 如果您只希望导出站点的一个子节,请在 页面顶部的文本框。

转到新的plone安装。将ilrt.contentmigrator添加到构建配置中 鸡蛋和zcml部分然后运行bin/buildout。

要执行完全导入,必须首先通过快速安装安装ilrt.contentmigrator呃,

如果没有导入到现有的plone站点,请添加plone站点。去ZMI 通过http://host/plone/manage" rel="nofollow">http://host/plone/manage并单击门户快速安装工具 选中"内容迁移器工具安装"复选框,然后单击"安装"。 然后应该提供/plone/portal_setupcontent。点击那个 访问migrator接口。

将导出的结构文件夹复制(或符号链接)到 ilrt.contentmigrator egg或在新plone站点的主主题egg中 然后重新启动,例如ilrt.contentmigrator/ilrt/contentmigrator/profiles/import/structure

导出格式-csv、xml、html

注意,虽然有三种导出格式,但只有默认的csv格式 可导入到更新的plone站点。

(如今,csv格式可能更适合称为yaml, 尽管可能不严格遵守yaml 1.2规范)

XML导出格式作为一种更通用的格式被添加到其他CMS的迁移工具中。 添加HTML转储是为了存档。

更多详细信息

安装ContentMigrator工具后,通用安装程序的内容适配器将 修改后,内容导入步骤现在将添加所有内容并设置工作流状态。

因此,一般设置,即plone/portal_设置是此工具的基础。

当您转到新的门户设置内容工具时,可以运行进一步增强的 通用安装内容步骤的版本,该步骤还设置用户、组和 MemberData并提供更完整的屏幕日志记录。 此外,该工具还提供对导出器的访问,以便您可以重新导出站点 或其内容的子文件夹。

如果要为结构文件夹导入指定其他路径,请调整 您正在使用的配置文件中的目录,例如directory="c:\导入" 在profiles.zcml中

如果使用默认配置文件,则通用安装程序将自动创建 为plone站点重新安装或选择带有配置文件的egg时的内容 创造。如果使用了另一个配置文件(如上面的/import),则必须 首先手动选择,然后通过安装工具或此迁移器工具运行。 对于大内容导入,这可能更可取。

标准通用安装程序在cmfcore.exportimport.content中运行适配器,该适配器将 只填充HTML文档的内容,没有属性或工作流状态 添加。

contentmigrator修改通用设置站点的创建以执行以下操作

< Buff行情>
  • 如果找到匹配的二进制内容格式和原型,则填充它们。
  • 使用Marshall的RFC822 Marshaller提取和应用属性数据。
  • 应用工作流状态转换。 注意:工作流迁移需要 ilrt.migrationtool egg.
  • 转换旧内容类型并添加MemberData(请参见下文)

请注意,进口要比出口长得多。 例如,一个千兆字节的内容可能只需要5分钟就可以导出,但是 一个小时就到了!

内容类型转换

有一个旧类型到新原型的老普隆遗址的地图。 目前这只处理"事件"的"日历项"和"链接"到"atlink"。 它位于ilrt/contentmigrator/contentmigrator/config.py文件中。 通过修改配置数据的typemap和nonatrops字典,可以映射 其他旧的自定义类型到新内容,甚至使用它从一个新类型迁移内容 到另一个。

用户迁移

contentmigrator还将导出和导入zope持有的用户,包括密码。 它通过生成用户、角色和组数据frOM GRUF或 在/structure/acl_users文件夹中,将基于PAS的站点作为通用设置XML文件。 MemberData被保存为门户成员数据目录中每个成员的CSV文件 在acl用户中。

谷歌网站导入

谷歌网站的导入不在plone的范围内。 它只需要安装googles gdata库的命令行python。 请参阅ilrt.contentmigrator/ilrt/contentmigrator/google/readme.txt 注意:当前它不处理自定义内容类型

XML格式

可以选择将内容导出为XML以导入其他系统, 要重新导入到当前plone中,请使用默认csv格式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView