views:

85

answers:

1

SqlAlchemy newbie question:

Base = declarative_base()

class A(Base):
    __tablename__ = 'as'
    id = Column(Integer, primary_key=True)

class B(Base):
    __tablename__ = 'bs'
    id = Column(Integer, primary_key=True)
    a = relation(A)

When I create my database schema, I have two tables, as and bs, which have one column (id) but there is no a column in table bs that points to A.

What can I be doing wrong? My database is mysql, if it matters.

+3  A: 

relation() only tells the mapper how are the two tables related. You still need to add a column with the foreign key information. For example:

class B(Base):
    __tablename__ = 'bs'
    id = Column(Integer, primary_key=True)
    a_id = Column(Integer, ForeignKey('as.id'), name="a")
    a = relation(A)
Lukáš Lalinský