[Zope-dev] Re: data migration from zope 2.6.1 to zope 2.7.0-b2
AltKey
myaltkey at msn.com
Sat Feb 7 09:25:52 EST 2004
Paul Winkler wrote:
> On Fri, Feb 06, 2004 at 03:12:39PM -0600, J Cameron Cooper wrote:
>
>>altkey wrote:
>>
>>
>>>I am fairly new to zope & python but I am working to migrate some
>>>data/objects from zope 2.6.1 to zope 2.7.0-b2 (and eventually 2.7.0
>>>final.
>>>
>>>What I am doing is this.
>>> (1) get Dublin core metadata + some Dublin core extensions for the
>>>objects
>>> (2) get pure text representation of object content - I can't use
>>>a simple import/export in zexp format because the classes in the
>>>receiving zope instance differ significantly from the classes in the
>>>sending zope instance.
>>>
>>>I am able to collect all the data mentioned above and pass it across
>>>to the new 2.7.0-b2 zope instance but i am having trouble getting my
>>>objects to live where they need to live; specifically their path is
>>>not being accepted properly when i recreate the objects.
>>
>>Before trying to deal with the problem you state, I'll make two possibly
>>simplifying observations:
>>
>>1. There should be no need to do any migration when upgrading Zope. The
>>ZODB has not changed, and you may simply copy it over or upgrade Zope in
>>place.
>>
>>2. ZSyncer is the best magic for copying objects from one instance to
>>another.
>
>
> I doubt it will help. ZSyncer is a shortcut for export -> import,
> and altkey wants to convert between two different classes.
> Also zsyncer currently enforces (stupidly) that the two
> zopes must have the same folder hierarchy - you can't
> sync /foo/bar/baz to /bat/bar/baz.
>
> altkey, maybe you should break this into multiple steps, some
> of which are apparently done already;
> something like:
>
> 1) write code that extracts data from an old class.
>
> 2) write code that creates an instance of the new class
> from this data.
>
> note that this is on one server so the classes must have
> different names or live in different modules.
> i think you're ok here already.
>
> 3) write a script that upgrades a single object "in place" by
> doing #1, deleting the object, then doing #2
>
> 4) write a script that walks a folder tree and does #3
> on all instances of the old class.
>
> 5) use zsyncer or export / import to copy the objects
> from the old zope to the new zope.
>
>
What I am doing is transferring data (not full objects) from one
Zope/CMF instance to another. The change of Zope version isn't the issue
for me. The issue is the classes present in the two instances. the first
instance zope 2.6.1 has a number of products that were written by the
group i work with (DF 2.0) and the receiving instance zope 2.7.0-b2 has
different classes (DF 3.0) which naturally could not accept the objects
from zodb because the supporting classes are not present in their
intended new home.
What I am having trouble is the path that
myObject.invokeFactory(type,id) uses. I try to set up a specific path
for myObject but the invokeFactory puts the new object into the DF root
rather than into the path for myObject.
I do not understand zope well enough to sort out the problem for myself
yet, so i posted a question here and in the CMF news group.
If you or anybody else can help I'd appreciate it very much.
Cheers
AlyKey (aka Phil)
More information about the Zope-Dev
mailing list