Plone 清除所有旧CMF条件版本
我们有一个巨大的网站,该网站的数据库应该为开发副本做好准备 如何删除所有内容项的所有旧历史记录版本?通过这种方式,我们可以大大减少传输到开发人员计算机所需的数据量 Plone 4.0我已经了解了Plone 3的详细信息(但请注意,我知道Plone 4对此做了一些更改) 在Plone 3.3中,所有历史都存储在portal_historiesstorage/repo对象中。这里有一个_shadowStorage子对象 我发现如果删除这个持久对象,它会在需要时从头创建 希望这对你有所帮助Plone 清除所有旧CMF条件版本,plone,Plone,我们有一个巨大的网站,该网站的数据库应该为开发副本做好准备 如何删除所有内容项的所有旧历史记录版本?通过这种方式,我们可以大大减少传输到开发人员计算机所需的数据量 Plone 4.0我已经了解了Plone 3的详细信息(但请注意,我知道Plone 4对此做了一些更改) 在Plone 3.3中,所有历史都存储在portal_historiesstorage/repo对象中。这里有一个_shadowStorage子对象 我发现如果删除这个持久对象,它会在需要时从头创建 希望这对你有所帮助 转到por
从日期时间导入日期时间
从Products.CMFCore.utils导入getToolByName
从Products.CMFEditions.utilities导入解引用
policy=getToolByName(self.context,“portal\u purgepolicy”)
catalog=getToolByName(self.context,“portal\u catalog”)
对于计数,枚举中的brain(目录()):
obj=brain.getObject()
#仅清除旧内容
如果对象已创建()<(日期时间()-30):
obj,历史_id=取消引用(obj)
policy.beforeSaveHook(history_id,obj)
打印“已清除对象”+obj.absolute\u url\u path()
以下是删除_shadowStorage的说明,如上面keul的提示所示: 在调试模式下启动ZEO客户端:
bin/client1 debug
然后:
del app.yoursiteid.portal\u historiesstorage.\u shadowStorage
进口交易;commit()事务
没有保修。不知道删除了什么。很明显,你已经摆脱了所有的历史记录。我发现(在我的案例中可能是RTFM的案例,但无论如何)直接打开Zope站点(比如)并按如下方式导航:
引导我进入一个页面,该页面提供“打包”数据库并删除所有超过X天的历史记录。这真是太棒了 测试后将与此合并:将此实用程序添加到CMFEditions并在ZMI某处公开它会很好。在旧Plone安装中,这个技巧确实帮助了我,在那里版本控制被滥用。我创建了一个脚本,帮助我清理:keul:如何使用该脚本删除所有内容(保持历史=0不做任何事情)@米克库塔马:零可能意味着“没有限制”。使用DateTime时,可能要设置的最早日期为hth 1901年1月1日。但这不会删除CMFEdition条目。这只会打包数据库。有两种不同类型的历史记录:基于CMFEdition的历史记录,如这里的首字母所示,以及ZODB历史记录,您正在使用“Pack”链接清除它。根据Alec Mitchell的说法,除去阴影存储只会擦除元数据,如果您需要擦除存储库中的条目,则必须执行其他操作;有关更多信息,请参阅。
bin/client1 debug