[ZODB-Dev] problem with broken

Marius Gedminas marius at gedmin.as
Thu Nov 6 04:20:44 EST 2008


On Wed, Nov 05, 2008 at 03:59:07PM +0100, Christian Theune wrote:
> On Wed, 2008-11-05 at 16:00 +0200, Marius Gedminas wrote:
> > On Wed, Nov 05, 2008 at 11:48:35AM +0100, Christian Theune wrote:
> > > On Wed, 2008-11-05 at 11:31 +0100, Laurence Rowe wrote:
> > > > Broken objects occur when the class for a pickled object cannot be 
> > > > imported. To change the location of a class, you need to provide an 
> > > > alias at the old location so that the object can be unpickled, i.e. 
> > > > MyOldClassName = MyNewClassName. You can only remove MyOldClassName 
> > > > after you have updated all of the pickles (with your code below).
> > > 
> > > Note: We made a relatively good experience by removing those symbols
> > > from their original modules and provide a generation which first sets up
> > > dummies, then runs migration code to remove/rebase those objects and
> > > then remove the dummies again.
> > 
> > How do you do that?  Monkey-patching?
> 
> Yes. Monkey-patching *and* monkey-unpatching.

Thought so.

By the way, this has a potential failure mode when you need to evolve
more than one generation, and a previous generation script needs to
access those objects in the old location before your new generation
script sets up the dummies.

Marius Gedminas
-- 
What can I do with Python that I can't do with C#?  You can go home on time at
the end of the day.
        -- Daniel Klein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mail.zope.org/pipermail/zodb-dev/attachments/20081106/2b65e654/attachment.bin 


More information about the ZODB-Dev mailing list