우리는 개발 용 사본을 준비해야하는 거대한 거대한 사이트가 있습니다.이전 CMFEditions 버전 모두 제거하기
모든 콘텐츠 항목의 모든 이전 기록 버전을 어떻게 제거 할 수 있습니까? 이렇게하면 개발자 컴퓨터로 전송하는 데 필요한 데이터의 크기를 크게 줄일 수 있습니다.
플론 (Plone) 4.0
우리는 개발 용 사본을 준비해야하는 거대한 거대한 사이트가 있습니다.이전 CMFEditions 버전 모두 제거하기
모든 콘텐츠 항목의 모든 이전 기록 버전을 어떻게 제거 할 수 있습니까? 이렇게하면 개발자 컴퓨터로 전송하는 데 필요한 데이터의 크기를 크게 줄일 수 있습니다.
플론 (Plone) 4.0
희망.
실행 다음 스크립트 : 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()
다음나는 플론 (Plone) 3에 대한 세부 사항을했습니다 (하지만 난이 플론 (Plone) 사에 조금 변화되는 것을 알 수 있습니다).
Plone 3.3의 기록은 모두 portal_historiesstorage/repo 개체 내에 저장됩니다. 거기에 _shadowStorage 하위 객체가 있습니다.
이 영구 객체를 삭제하면 필요할 때 처음부터 생성된다는 것을 알았습니다. portal_purgepolicy 어떤 번호로 번호를 설정 할 수있는 방법
이 _shadowStorage을 삭제하는 명령어입니다
디버그 모드에서시작 ZEO 클라이언트 :
bin/client1 debug
그 다음 :
del app.yoursiteid.portal_historiesstorage._shadowStorage
import transaction ; transaction.commit()
보증 기간이 없습니다. 그것이 무엇을 삭제하는지 모르겠다. 분명히 당신은 모든 역사를 제거합니다.
Alec Mitchell에 따르면, 섀도 저장소를 제거하면 메타 데이터가 지워지고 저장소 저장소의 항목을 지우려면 다른 작업을해야합니다. 자세한 내용은 https://github.com/plone/Products.CMFEditions/issues/28#issuecomment-113591175를 참조하십시오. – hvelarde
나는 (내 경우에 RTFM의 아마 경우 무엇에, 어쨌든) 발견 개방까지 조프 사이트 (http://localhost:8080/ 말) 직접 다음과하게 탐색과 같이
을 "팩"는 databa를 제공하는 페이지를 알려준 X 일 이전의 모든 기록을 삭제합니다. 이것은 대접처럼 일했습니다!
하지만 CMFEdition 항목은 제거되지 않습니다. 이는 데이터베이스 만 압축합니다. 역사에는 두 가지 종류가 있습니다. 첫 번째로 CMFEdition 기반의 것들과 "Pack"링크로 지우는 ZODB History입니다. – jkubaile
슈퍼! 이것은 Plone 3.3에서도 작동합니다! 그냥 테스트! –
테스트 후 병합됩니다. http://collective-docs.readthedocs.org/en/latest/hosting/zope.html#creating-a-cleaned-data-drop –
이 유틸리티를 CMFEditions에 추가하는 것이 좋습니다. 그리고 ZMI 어딘가에 그것을 드러내십시오. –