2012-03-13 1 views
8

私たちは開発用のデータベースを準備するための大きな巨大なサイトを持っています。すべての古いCMFEditionsバージョンをパージする

すべてのコンテンツアイテムの古い履歴バージョンをどのように削除できますか?このようにして、デベロッパーコンピュータに転送するために必要なデータのサイズを大幅に削減することができます。

Ploneは4.0

答えて

14
  1. ゴーで

    ・ホープこのヘルプ(私は通常、3「」は、少なくともいくつかの履歴を保持するために使用します)。デバッグモードで

    スタートZEOクライアント:

    bin/client1 debug 
    

  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の4の上に少し変更されたことを知っていることに注意してください)。

Plone 3.3の履歴はすべてportal_historiesstorage/repoオブジェクト内に格納されています。ここに_shadowStorageサブオブジェクトがあります。

この永続オブジェクトを削除すると、必要に応じてゼロから作成されています。いくつかの番号に番号をportal_purgepolicyし、設定するいくつかの方法

2

は、_shadowStorageを削除する命令です次に:

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のケースだったが、何に)その開放のZopeサイト(http://localhost:8080/が言う)を見つけ、次のようにナビゲート:

  1. ページを管理「コントロールパネル」
  2. 「データベース」
  3. 「メイン」

が「パック」がdatabaを提供するページに私を導きましたX日以上経過したすべての履歴を削除します。これは治療のように働いた!

+3

これでCMFEditionのエントリは削除されません。これはデータベースをパックするだけです。履歴には2つの異なる種類があります:ここで最初に尋ねたCMFEditionベースのものと、 "Pack"リンクでクリアしているZODB Historyです。 – jkubaile

関連する問題