Marius Gedminas wrote:
> 1. create modules in their old locations that import all the classes
> from the new locations (and do nothing else).
> 2. write a script that opens the DB, iterates over all persistent
> objects in it, touches every single one of them (obj._p_activate()
> followed by obj._p_changed = True) and commits the transaction.
Marius said it correctly, but I'd like to emphasize that it's not enough
to touch just the objects whose class changed, since persistent
references encode the module and class name. It's best to just touch
everything. You will have to use multiple transactions to touch
everything in a large database.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org