Hi. I have two tables that have foreign keys on each other. The
following works fine, where Base is a declarative base:
class Child1(Base):
__tablename__ = 'child1'
id = Column('id', Integer, primary_key=True)
related_child2 = Column('c2', Integer, ForeignKey('child2.id',
use_alter = True, name='c2_key'))
class Child2(Base):
__tablename__ = 'child2'
id = Column('id', Integer, primary_key=True)
related_child1 = Column('c1', Integer, ForeignKey('child1.id'))
I would like these tables to both be children of a common parent table
using join inheritance, but I still want them to reference each other
directly. If I change the model to this:
class Parent(Base):
__tablename__ = 'parent'
id = Column('id', Integer, primary_key=True)
tp = Column('type', String(50))
__mapper_args__ = dict(polymorphic_on = tp)
class Child1(Parent):
__tablename__ = 'child1'
id = Column('id', Integer, ForeignKey('parent.id'), primary_key=True)
related_child2 = Column('c2', Integer, ForeignKey('child2.id',
use_alter = True, name='c2_key'))
__mapper_args__ = dict(polymorphic_identity = 'child1')
class Child2(Parent):
__tablename__ = 'child2'
id = Column('id', Integer, ForeignKey('parent.id'), primary_key=True)
related_child1 = Column('c1', Integer, ForeignKey('child1.id'))
__mapper_args__ = dict(polymorphic_identity = 'child2')
It no longer works. In particular, I get
<class 'sqlalchemy.exceptions.InvalidRequestError'>: Could not find
table 'child2' with which to generate a foreign key
Why was it able to find the table in the first model but not in the second?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---