I have a number of database that have the same tables in them.

I create a session for 1 data and do some work. This work causes
a number of table table object to be reflected from the database
and then mapped. This works fine.

Now I Switch to another database which has the same tables. If I
access only table that had been mapped in first database
things go fine. If I try to map a new table this is where
problems start with it not handling the relation. The
mapper when compiled says the following:

ArgumentError: Could not determine join condition between parent/child tables on
relation mds_ltc_mi.stx_setup.  Specify a 'primaryjoin' expression.  If this is
a many-to-many relation, 'secondaryjoin' is needed as well.

If I access the same table/mapped object in the first database thing
work just fine. It pickup the foreign keys and everything work just fine


All session are created as follows:
self._engine = create_engine(url,pool_recycle=14400, echo=debug)
self.metadata = MetaData()
self.metadata.bind = self._engine
self.session = Session(bind=self._engine, autoflush=False,
   _enable_transaction_accounting=False, autocommit=True,
   weak_identity_map=True)


Mapping code look like the following:

mapped_class = class_mapper(map_class, compile=False, raiseerror=False)
if mapped_class:
     return mapped_class

if map_class.__table_name__ in self.metadata.tables:
     table = self.metadata.tables[map_class.__table_name__]
else:
     table = Table(name, self.metadata, autoload=True)

mapped_class = mapper(map_class, table, mapping_option)
mapped_class.compile()
return mapped_class

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to