| Think of it in terms of modules: | | objects from BTree -> objects from BTrees.OOBTree | objects from IOBTree -> objects from BTrees.IOBTree | objects from OIBTree -> objects from BTrees.OIBTree | objects from IIBTree -> objects from BTrees.IIBTree | objects from intSet -> objects from BTrees.IIBTree Ok. +--------------------+------------------------+ |Old |New | +--------------------+------------------------+ |BTree.BTree |BTrees.OOBTree.OOBtree | +--------------------+------------------------+ |BTree.Bucket |BTrees.OOBTree.OOBucket | +--------------------+------------------------+ |IOBTree.BTree |BTrees.IOBTree.IOBTree | +--------------------+------------------------+ |IOBTree.Bucket |BTrees.IOBTree.IOBucket | +--------------------+------------------------+ |OIBTree.BTree |BTrees.OIBTree.OIBTree | +--------------------+------------------------+ |OIBTree.Bucket |BTrees.OIBTree.OIBucket | +--------------------+------------------------+ |IIBTree.IIBTree |BTrees.IIBTree.IIBTree | +--------------------+------------------------+ |IIBTree.Bucket |BTrees.IIBTree.IIBUcket | +--------------------+------------------------+ |intSet |BTrees.IIBTree.IITreeSet| +--------------------+------------------------+ | >| 3. The hard part is walking the object tree. You will need a function | >that, | >| given an object, will return the oids of the objects it references. | >| Perhaps Jeremy can help you with that. | > | >I hope so *wink*. | | Me too. He's pretty busy. If he can't, I'll try to help. I started with a slight variation of Shane's change_modules.py [1]. Had to make some changes because stuff seem to have changed in the Connection class. For example, invalidate() now expects a dict instead of a oid. My plan is to change around line 130, where it creates a new pickle with new_class_spec to wake the old object, create a new one and pickle the new object. Sounds reasonable? [1] http://cvs.sourceforge.net/viewcvs.py/zodbex/zodbex/ChangeModules/change_mod... -- Sidnei da Silva <sidnei@awkly.org> http://awkly.org - dreamcatching :: making your dreams come true http://plone.org/about/team#dreamcatcher A programming language is low level when its programs require attention to the irrelevant.