2009-11-30 46 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)