[ZODB-Dev] Converting from 3.2 to 3.3

Syver Enstad syver at inout.no
Thu Nov 4 09:28:01 EST 2004


Syver Enstad <syver at inout.no> writes:

> It seems to go well until I try to access a BTree in my root object.
> 
> This is the repr string for it.
> <persistent broken IndexedCatalog.BTrees.IOBTree.IOBTree instance '\x00\x00\x00\x00\x00\x00\x00\x02'>
> 
> How do I get around this?
> 

I found a way around this problem:

The IndexedCatalog module does the following when it is present but I
can't use it with ZODB 3.3 so... If I make a module under 3.3 with
this content I get it to work

import BTrees
import sys 
sys.modules['IndexedCatalog.BTrees'] = BTrees


Now I just have the warning messages about using Persistence classes,
when looking at the output from fsdump.py I can indeed see that the
objects are listed as from the Persistance module (PersistentList and
so on). How can I convert the database so that it uses the new "module
path" for Persistent and load the IOBTree from BTrees instead of
relying on the hack above?

Examples from fsdump:
  data #00013 oid=0000000000000003 class=IndexedCatalog.BTrees.IOBTree.IOBucket   data #00002 oid=00000000000001ab class=Persistence.PersistentMapping 





More information about the ZODB-Dev mailing list