zope.app.fssync集成于Zope2
项目描述
gocept.fssyncz2
请注意:我们不再积极支持此包。如果您仍然需要它,请给我们留言,我们可以转让仓库或提供付费支持。
此包提供了zope.fssync/zope.app.fssync的Zope2集成,即能够将ZODB内容导出到文件系统(为此,它为OFS文件夹等提供了同步器,并将zope.app.fssync的Zope3机制适配到与Zope2发布者一起工作)。
其主要用途是将存储在ZODB中的代码保存在源代码管理系统中。因此,它试图使写入磁盘的pickle尽可能易于阅读(例如,不使用base64编码)。
到目前为止,它专注于dump和load操作(这些操作将目标完全覆盖),因为合并不同签出之间的更改仍然需要通过SCM完成。(zope.app.fssync提供了其他几个操作,例如update和commit,这些操作尝试在ZODB和文件系统dump同时更改时变得聪明。尽管这样很好,只要只有一个文件系统表示存在,但当需要同步多个dump时,模型就会崩溃——在这种情况下确定哪个更改是正确的非常困难,所以我们建议在此阶段不使用这些操作。)
用法
您需要加载配置文件configure.zcml和overrides.zcml。
gocept.fssyncz2提供了一个名为fssync的控制台脚本,它封装了两个操作(dump和load),并允许传递所有其他参数(URLs、位置、凭据)。这可以通过buildout之类的生成(例如),如下所示
[fssync] recipe = zc.recipe.egg:scripts eggs = gocept.fssyncz2 extra-paths = ${zope2:location}/lib/python arguments = host='${instance:http-address}', folder='myfolder', credentials='${instance:user}', repository='${buildout:directory}/var/zodb-dump'
然后您可以使用bin/fssync dump将ZODB导出到配置的文件系统位置,使用bin/fssync load将存储在文件系统上的数据加载到ZODB中。
忽略对象
如果您想排除某些对象进行导出(例如,经常更改的用户数据),在父文件夹中创建一个名为fssync-dump-ignore的“Restrucured Text Document”。此文件可以包含每行一个对象名称,应从导出中排除。
更改
1.7 (2018-09-19)
修复PluggableAuthService用户文件夹的恢复。
稳定了一个依赖于文件对象etag具有确定性长度的测试。(#10491)
1.6 (2013-03-22)
不要导出PythonScripts的co_varnames属性,因为它既不稳定也不需要在导出中使用。
1.5.2 (2012-07-04)
为CookieUserFolder添加了在加载时忽略fssync后的恢复__allow_groups__指针的工作区。(#11111)
1.5.1 (2012-02-27)
在加载dump时实际上忽略对象。(#10488)
1.5 (2012-02-23)
添加了忽略机制。(#10483)
1.4 (2011-11-28)
修复了一个错误,该错误阻止了包含序列]]>的字符串被导出和重新加载,导致XML pickle格式不正确。
稍微清理了一下:删除了一个未使用的testdata目录。
1.3 (2011-08-05)
在buildout中固定了所有使用的版本。
将分类器添加到包元数据中。
1.2 (2011-04-10)
确保字符串中的换行符作为换行符结束,而不是XML pickle中的\n表示法(修复了#8860)。
在开发buildout中安装fssync脚本。
导出PythonScript时,省略其_code属性以减少XML pickle中的噪声(修复了#8859)。
声明了对zope.i18nmessageid的依赖关系。
当在Extras.中查找持久对象时,提供了更好的错误消息。
1.1 (2011-01-31)
将控制台命令重命名为dump/load而不是checkout/checkin,以避免与SCM操作混淆。
1.0 (2011-01-31)
初始发布。