[ZODB-Dev] strange commit error
Miles
miles at jamkit.com
Wed Dec 3 05:50:03 EST 2008
Hi,
I'm hoping that someone can help us understand what is going on here -
though if it's the wrong list please let me know :-). Although the
context is zope, the nub of the issue seems to be ZODB-related.
We needed to recover some old data that had been deleted from a
FileStorage and wrote a small "zopectl" script to do this:
- we started zope with "zopectl debug";
- we used zc.beforestorage to open a separate COPY of the database at
an earlier data;
- we located the objects in the old copy;
- we attempted to insert a copy of the OLD object into the current
database (following zope's _getCopy method):
f=tempfile.TemporaryFile()
old_db_connection.exportFile(self._p_oid,f)
f.seek(0)
container = app.new_folder
ob=container._p_jar.importFile(f)
- this seemed to work fine, but when I go to commit, I get an error:
(from ZODB.serialize.py - line 350)
if obj._p_jar._implicitlyAdding(oid):
raise InvalidObjectReference(
"A new object is reachable from multiple databases. "
"Won't try to guess which one was correct!"
)
Can anyone shed any light on what this error means?! Given a persistent
object, what is the correct way to get a completely fresh copy that is
not tied to any database at all, so I can transfer these old objects to
the current database.
Thanks for your help!
Miles
More information about the ZODB-Dev
mailing list