2012-03-13 33 views
8

Geliştirme kopyaları için veritabanının hazırlanması gereken çok büyük bir sitemiz var. biri tüm içerik öğelerinin tüm eski geçmişi sürümlerini kaldırmak nasılTüm eski CMFEditions sürümlerini temizleme

? Bu şekilde, geliştirici bilgisayarlara aktarılmak için gereken veri boyutunu büyük ölçüde azaltabiliriz.

Plone'un 4.0

cevap

14
  1. Git bu yardım (Ben genellikle en azından bazı geçmişini tutmak için '3' kullanın)

    Umut.

  2. çalıştırın aşağıdaki komut: Keul yukarıda ima olarak

    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() 
    
    İşte
+1

Süper! Bu da Plone 3.3'te çalışıyor! Sadece test edildi! –

+1

Testten sonra bununla birleştirilecek: http://collective-docs.readthedocs.org/en/latest/hosting/zope.html#creating-a-cleaned-data-drop –

+5

Bu yardımcı programı CMFEditions'a eklemek güzel olurdu ve bir yerde ZMI'ye maruz bırak. –

4

Ben Plone 3 için ayrıntıları ettik (ama bu Plone 4 biraz değişmiş olduğunu bilmek dikkat edin).

Plone 3.3 geçmişleri tüm portal_historiesstorage/Repo nesnesi içinde saklanır. Orada bir _shadowStorage alt nesne var.

Bunu kalıcı nesne silerseniz gerektiğinde, bu sıfırdan yarattı bulundu. portal_purgepolicy ve bazı sayıya sayısını ayarlamak için bir şekilde

2

, _shadowStorage silmek talimatlar şunlardır:

ayıklama modunda

Başlangıç ​​ZEO istemcisi:

bin/client1 debug 

Sonra:

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

Garanti yok. Silmekte ne olduğu hakkında bir fikrim yok. Görünüşe göre, tüm tarihlerden kurtulursun.

+2

, gölge deposundan kurtulmak sadece meta verileri siler ve depolama deposundaki girişleri silmeniz gerekirse başka şeyler yapmanız gerekir; Daha fazla bilgi için https://github.com/plone/Products.CMFEditions/issues/28#issuecomment-113591175 adresine bakın. – hvelarde

0

I (benim durumumda üzerinde KKO muhtemelen bir olayın ne de, ama yine de) bulduğunu açılması Zope sitesi (http://localhost:8080/ demek) doğrudan ve aşağıda yön bulma işlemi gibidir:

  1. sayfayı
  2. yönetmek "Denetim Masası"
  3. "veritabanı"
  4. "Ana"

için "paket" Databa sunulan bir sayfaya götürdü X günden eski tüm geçmişi silip kaldırın. Bu bir tedavi gibi çalıştı!

+3

Ancak bu, CMFEdition girişlerini kaldırmaz. Bu sadece veritabanını paketler. İki farklı tarih türü vardır: CMFEdition temelli olanlar burada sorulur - ve "Pack" bağlantısı ile temizlediğiniz ZODB History. – jkubaile

İlgili konular