[Zope-dev] Changing and migrating persistence structure
Martin Aspeli
optilude+lists at gmail.com
Sun Aug 8 21:03:18 EDT 2010
On 8 August 2010 20:29, Hanno Schlichting <hanno at hannosch.eu> wrote:
> There should be some way of doing this with custom __getstate__ and
> __setstate__ methods.
>
> It's just tricky to get right and a bit fragile. It's much easier to
> write the migration code if both the old and new class are separate
> and functioning at the same time.
The main problem is that the advertised API says you should do:
from plone.registry import Record
from plone.registry import field
registry['foo.bar'] = Record(field.TextLine(), u"my value")
Here, field.TextLine derives from PersistentField which derives from
Persistent, and Record derives from Persistent also.
If I wanted to get rid of the Persistent base, I'd have to make a new
"tree" of field types (the standard zope.schema ones still need some
subclassing), and a new Record class with a less obvious name.
Martin
More information about the Zope-Dev
mailing list