2012-03-13 3 views
8

우리는 개발 용 사본을 준비해야하는 거대한 거대한 사이트가 있습니다.이전 CMFEditions 버전 모두 제거하기

모든 콘텐츠 항목의 모든 이전 기록 버전을 어떻게 제거 할 수 있습니까? 이렇게하면 개발자 컴퓨터로 전송하는 데 필요한 데이터의 크기를 크게 줄일 수 있습니다.

플론 (Plone) 4.0

답변

14
  1. 이동이 도움이 (나는 보통 적어도 일부 역사를 유지하는 '3'를 사용)

    희망.

  2. 실행 다음 스크립트 : keul 위의 힌트로

    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() 
    
    다음
+1

슈퍼! 이것은 Plone 3.3에서도 작동합니다! 그냥 테스트! –

+1

테스트 후 병합됩니다. http://collective-docs.readthedocs.org/en/latest/hosting/zope.html#creating-a-cleaned-data-drop –

+5

이 유틸리티를 CMFEditions에 추가하는 것이 좋습니다. 그리고 ZMI 어딘가에 그것을 드러내십시오. –

4

나는 플론 (Plone) 3에 대한 세부 사항을했습니다 (하지만 난이 플론 (Plone) 사에 조금 변화되는 것을 알 수 있습니다).

Plone 3.3의 기록은 모두 portal_historiesstorage/repo 개체 내에 저장됩니다. 거기에 _shadowStorage 하위 객체가 있습니다.

이 영구 객체를 삭제하면 필요할 때 처음부터 생성된다는 것을 알았습니다. portal_purgepolicy 어떤 번호로 번호를 설정 할 수있는 방법

2

이 _shadowStorage을 삭제하는 명령어입니다

디버그 모드에서

시작 ZEO 클라이언트 :

bin/client1 debug 

그 다음 :

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

보증 기간이 없습니다. 그것이 무엇을 삭제하는지 모르겠다. 분명히 당신은 모든 역사를 제거합니다.

+2

Alec Mitchell에 따르면, 섀도 저장소를 제거하면 메타 데이터가 지워지고 저장소 저장소의 항목을 지우려면 다른 작업을해야합니다. 자세한 내용은 https://github.com/plone/Products.CMFEditions/issues/28#issuecomment-113591175를 참조하십시오. – hvelarde

0

나는 (내 경우에 RTFM의 아마 경우 무엇에, 어쨌든) 발견 개방까지 조프 사이트 (http://localhost:8080/ 말) 직접 다음과하게 탐색과 같이

  1. 페이지를
  2. 관리 "제어판"
  3. "데이터베이스"
  4. "메인"

을 "팩"는 databa를 제공하는 페이지를 알려준 X 일 이전의 모든 기록을 삭제합니다. 이것은 대접처럼 일했습니다!

+3

하지만 CMFEdition 항목은 제거되지 않습니다. 이는 데이터베이스 만 압축합니다. 역사에는 두 가지 종류가 있습니다. 첫 번째로 CMFEdition 기반의 것들과 "Pack"링크로 지우는 ZODB History입니다. – jkubaile