Hello everyone,

We need to move a considerable number of persistent objects (~40K) from
one module to another, and we were wondering what is the best strategy
to follow.

Our database contains around 90M objects, which is a pain to run
`zodbupdate` on. So far these are the options that we thought of:

 * Running `zodbupdate`, possibly restricting the target object set to
   the places where we know that references to the class in question
   exist (otherwise it takes REALLY long);
 * Using the `classFactory`/`find_global` hook and basically converting
   the objects/refs to the new class as they are requested;

The first one seems cleaner and less prone to problems in the future,
but it will take ages (our current benchmarks point towards >1 day,
although we could try to reduce that by limiting the search scope). The
second one seems much easier to execute, but the fact that
objects/references to the old and new classes will co-exist kind of
bothers me.

Has anyone ever done anything like this? Which approach have you
followed? Any suggestions?

Thanks a lot in advance,

Cheers,


Pedro

P.S.: I am sending this from my private mail because this list seems to
have been blacklisted in some servers, including my organization's.

-- 

Pedro Ferreira
http://pferreir.github.com
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to