sqlalchemy不会创建我的外键

fly*_*ire 3 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)
Run Code Online (Sandbox Code Playgroud)

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

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

Luk*_*ský 5

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

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