RSS

debugモードでzodbの書き換え

Ploneで各オブジェクトの議論の許可を一斉変更しようとしたときのテストのメモ。

プロダクトのインストールスクリプトの中でやるのがいいのだろうが面倒なのでZopeをデバッグモードで起動させてそこで書き換えた。そんな難しいわけでもない。

$ ./bin/plonectl debug
instance: Starting debugger (the name "app" is bound to the top-level Zope object)
>>> from Products.CMFCore.utils import getToolByName
>>> catalog = getToolByName(app.Plone, 'portal_catalog')
>>> es = catalog(portal_type='Document', path='/Plone/blog') 
>>> len(es)
1
>>> o = es[0].getObject()
>>> o.allow_discussion
False
>>> o.allow_discussion = True
>>> import transaction
>>> transaction.commit()

こんな感じ。