Очистка всех старых версий CMFEditions - PullRequest
8 голосов
/ 13 марта 2012

У нас есть большой огромный сайт, базу данных которого нужно подготовить для разработки копий.

Как можно удалить все старые исторические версии всех элементов контента?Таким образом мы могли бы значительно уменьшить размер данных, необходимых для передачи на компьютеры разработчиков.

Plone 4.0

Ответы [ 4 ]

14 голосов
/ 13 марта 2012
  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()
    
4 голосов
/ 13 марта 2012

У меня есть детали для Plone 3 (но учтите, что я знаю, что это немного изменилось в Plone 4).

В Plone 3.3 все истории хранятся в объекте portal_historiesstorage / repo. Там у вас есть подобъект _shadowStorage.

Я обнаружил, что если вы удаляете этот постоянный объект, он создается с нуля, когда это необходимо.

Надеюсь, что эта помощь каким-то образом

2 голосов
/ 02 мая 2012

Вот инструкции по удалению _shadowStorage, как подсказывает keul выше:

Запустите ZEO-клиент в режиме отладки:

  bin/client1 debug

Затем:

  del app.yoursiteid.portal_historiesstorage._shadowStorage
  import transaction ; transaction.commit()

Нет гарантии,Понятия не имею, что это удаляет.Видимо, вы избавляетесь от всех историй.

0 голосов
/ 19 января 2015

Я обнаружил (что, вероятно, было случаем RTFM в моем случае, но в любом случае), что открывает сайт Zope (http://localhost:8080/ скажем) напрямую и перемещается следующим образом:

  1. управлять страницей
  2. "Панель управления"
  3. "база данных"
  4. "Главная"

привела меня на страницу, которая предложила "упакуйте базу данных и удалите всю историю старше X дней.Это работало как удовольствие!

...