跳转到主要内容

collective.diversion包装了ZODB中损坏对象现有的行为,允许开发者声明他们类的旧位置,并自动迁移

项目描述

collective.diversion

collective.diversion包装了ZODB中损坏对象现有的行为,提供了一个在传递请求之前预先处理的查找表。这允许开发者在加载时声明他们类的旧位置,并自动无缝地将它们迁移到新的代码。

https://secure.travis-ci.org/collective/collective.diversion.png?branch=master

用法

只需在您的代码中包含以下ZCML声明

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:diversion="http://namespaces.plone.org/diversion">

    <diversion:class
        old="Products.example.oldlocation"
        new="collective.example.shiny"
        />

</configure>

注意事项

转向的类在写入时会保留其新类。然而,当ZODB存储持久对象的引用时,它存储oid和类名。那些类名引用只有当它们所附加的持久对象重新序列化(修改)时才会更新。不幸的是,此包无法为您完成此操作,因为没有快速找到引用特定对象的集合对象的方法。您必须在确认所有实例和所有引用都已更新之前保留您的包中的转向指令。

变更日志

1.0(未发布)

  • 覆盖了ZODB ExportImport中的cPickle.Unpickler类,以便支持复制/粘贴以及导出。(MatthewWilkes)

  • 初始化时将类工厂重新绑定到现有的数据库连接上(MatthewWilkes)

  • 用于注册转向的ZCML声明

  • 使用转向的类工厂实现

贡献者

Tom Blockley Alan Hoey Matthew Wilkes

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

collective.diversion-1.0.zip (26.7 kB 查看哈希值)

上传时间

由以下支持