[Grok-dev] Re: releasing 0.12.1
Philipp von Weitershausen
philipp at weitershausen.de
Wed Jun 4 08:56:11 EDT 2008
Sebastian Ware wrote:
> 4 jun 2008 kl. 12.41 skrev Raphael Ritz:
>
>> Tim Terlegård wrote:
>>> On May 30, 2008, at 4:16 PM, Philipp von Weitershausen wrote:
>>>> Jan-Wijbrand Kolman wrote:
>>>>>
>>>>> * Is there anything 0.12.1 can do to prevent Sebastian's "__iro__"
>>>>> problem?
>>>>
>>>> Grok should continue to depend on zope.app.securitypolicy and
>>>> zope.app.session, so that old pickles continue to work.
>>> This is a disadvantage with object databases, classes can't be moved
>>> around
>>> easily.
>>> Is there some script that can change class paths in the zodb? Or do you
>>> have you write your own migration code everytime you change
>>> my.model.SomeModel to my.models.SomeModel?
>>
>> You can provide module aliases but that's about it ...
>>
>> Alternatively, one could look into providing some
>> dump/load capability via a neutral format like what
>> GenericSetup does for CMF site configurations or
>> what we are looking into for Plone content at the moment.
>>
>> Raphael
>>
>
> - dump/load would be a great feature!
> - "retyping" objects on load/in place would be a great feature! (maybe
> the latter can be done already?)
Yup. When you've provided module aliases or BBB imports, the ZODB will
be able to load pickles properly. When you change the resulting objects
so that they have to be re-pickled, the ZODB will use the *new* location
of the class.
It is therefore sufficient to loop over all relevant objects (whose
classes have moved) and simply do:
obj._p_activate()
obj._p_changed = True
More information about the Grok-dev
mailing list