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

Когда я создаю мою схему базы данных, у меня есть две таблицы, как и Б.С., которые имеют один столбец (ID), но нет a колонков в таблице bs, которая указывает на A.

Что я могу делать неправильно? Моя база данных - это mysql, если это имеет значение.

ответ

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) 
Смежные вопросы