2009-11-30 53 views
3

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) 

当我创建我的数据库架构,我有两个表,A和B,其中有一列(ID),但没有a列在表bs中指向A.

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

回答

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)