sqlalchemy不会创建我的外键

时间:2009-11-30 18:29:39

标签: python mysql orm sqlalchemy

SqlAlchemy新手问题:

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)

当我创建数据库模式时,我有两个表as和bs,它们有一列(id),但表b中没有a列指向A。

我能做错什么?我的数据库是mysql,如果重要的话。

1 个答案:

答案 0 :(得分:5)

relation()只告诉映射器这两个表是如何相关的。您仍然需要添加包含外键信息的列。例如:

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