On 02/10/2011 06:30 AM, Santi Camps wrote:
> I was trying to move a database copy a relstorage zodb and having some
> issues.  The original zodb is mounted using a mount point /original_path
>    If I restore the backup of the database and mount it using exactly
> the same mount point /original_path in the destination zope, all goes
> right.   But what I want is to replicate the original database N times,
> so need to have /destination_pathN in the mount point.  When I do that,
> the database seems empty (no object is shown in the mounted point).

The normal way to copy objects in ZODB is through ZEXP export and 
import.  Have you tried that?  Also, what is your goal?

> Is there any way to fix this updating registers in SQL ?   I know a way
> to solve it might be to export and import ZEXP, but the database is very
> big and I'm trying to avoid it  I've tried these 2 queries but no effect
> obtained, these fields seems just informative:
> update transaction set description=replace(description::text,
> 'helpdesk_src', 'redesistemas')::bytea;
> update transaction set username=replace(username::text, 'helpdesk_src',
> 'redesistemas')::bytea;

The username and description in the transaction table affect only what 
you see in the undo log.  I don't think they have any connection with 
the problem you are trying to solve.

> Where is stored the information about parent -> children objects ?  Is
> the prev_tid field of object_state table ?

No.  RelStorage stores all such information in pickles, just like 
FileStorage or any other ZODB storage.

If you're using RelStorage because you expect to be able to access and 
manipulate the object database using SQL, I'm afraid you will be 
disappointed.  All ZODB storages store pickles, and pickles are opaque 
to SQL.

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to