清除所有旧的CMFEditions版本

Mik*_*maa 8 plone

我们有庞大的网站,应该为开发副本准备数据库.

如何删除所有内容项的所有旧历史版本?这样,我们可以大大减少传输到开发人员计算机所需的数据大小.

Plone 4.0

zup*_*upo 14

  1. 转到portal_purgepolicy并将数字设置为某个数字(我通常使用'3'来保留至少一些历史记录).
  2. 运行以下脚本:

    from DateTime import DateTime
    from Products.CMFCore.utils import getToolByName
    from Products.CMFEditions.utilities import dereference
    
    
    policy = getToolByName(self.context, 'portal_purgepolicy')
    catalog = getToolByName(self.context, 'portal_catalog')
    
    for count, brain in enumerate(catalog()):
        obj = brain.getObject()
    
        # only purge old content
        if obj.created() < (DateTime() - 30):
            obj, history_id = dereference(obj)
            policy.beforeSaveHook(history_id, obj)
            print 'purged object ' + obj.absolute_url_path()
    
    Run Code Online (Sandbox Code Playgroud)

  • 将此实用程序添加到CMFEdition并将其在ZMI中的某个地方公开会很不错. (5认同)
  • 这个技巧真的帮助我在旧的Plone安装中,版本控制被滥用我创建了一个帮助我清理的cript:https://github.com/RedTurtle/plone_clean_history (2认同)