Miles Waller wrote at 2006-6-12 16:58 +0100: >Does anyone have a good approach to changing the class of an object >already stored in the ZODB?
This is *very* difficult. The main problem is that the class is usually coded (for efficiency reasons) in the persistent references to an object. As soon as the container is loaded from the ZODB, a ghost is created for its persistent reference using the class mentioned there. This means: it is not safe to change the class of a persistent object unless you although modify all its containers (otherwise, some persistent references remain with the old class. This potentially leads to non-deterministic behaviour). I usually solve you problem with proxy classes: When I want to refactor something, I do, but leave at the old place something like: from NewPlace import NewClass as OldClass -- Dieter _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )