found it out myself: > related_persons = orm.relation(tblPersonTable, > secondary=tblPersonCompanyTable, backref="company") must be > related_persons = orm.relation(tblPersonTable, > secondary=tblPersonCompanyTable.__table__, backref="company") >
have a good time robert robert rottermann schrieb: > Hi there, > I try to create a m:n relation. All tables should be reflected from an > existing db. > For this I have the following construct: > engine = EngineFactory(DSN, echo=False, > convert_unicode=True, encoding="latin1" )() > Base = declarative_base(engine) > Base.metadata.reflect() > tables = Base.metadata.tables > > class tblPersonCompanyTable(Base): > implements(interfaces.ItblPersonCompanyTable) > __table__ = tables['tblPersonCompany'] > > class tblPersonTable(Base): > __table__ = tables['tblPerson'] > > class tblCompanyTable(Base): > __table__ = tables['tblCompany'] > > related_persons = orm.relation(tblPersonTable, > secondary=tblPersonCompanyTable, backref="company") > > class tblFlagTable(Base): > __table__ = tables['tblFlag'] > > now when I create a tblFlagTable object (which is the first thing accessing > the > db), I get an error: > AttributeError: 'tblPersonCompanyTable' object has no attribute 'foreign_keys' > > the MySQL-table assigned to 'tblPersonCompanyTable' does have foreign keys > assigned. > > what am I doing wrongly? how can I fix this > thanks > robert > > File "/home_2/zope/energiecluster/db/scripts/transfer/transfer.py", line 223, > in ? > main() > File "/home_2/zope/energiecluster/db/scripts/transfer/transfer.py", line 173, > in > main > fo = tblFlagTable() > File "/home_2/zope/energiecluster/db/scripts/transfer/<string>", line 4, in > __init__ > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/attributes.py", > line 858, in initialize_instance > fn(self, instance, args, kwargs) > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/mapper.py", > line 1726, in _event_on_init > instrumenting_mapper.compile() > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/mapper.py", > line 679, in compile > mapper._post_configure_properties() > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/mapper.py", > line 701, in _post_configure_properties > prop.init(key, self) > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/interfaces.py", > line 404, in init > self.do_init() > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py", > line 575, in do_init > self._determine_joins() > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py", > line 649, in _determine_joins > self.secondaryjoin = _search_for_join(self.mapper, self.secondary) > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py", > line 642, in _search_for_join > return join_condition(mapper.local_table, table) > File > "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/sql/util.py", > line 82, in join_condition > for fk in b.foreign_keys: > > > > --~--~---------~--~----~------------~-------~--~----~ 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 sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---