sqlalchemy не создает мой внешний ключ - PullRequest
3 голосов
/ 30 ноября 2009

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), но в таблице bs нет столбца a, который указывает на A.

Что я могу делать не так? Моя база данных MySQL, если это имеет значение.

1 Ответ

5 голосов
/ 30 ноября 2009

relation() только говорит мапперу, как связаны две таблицы.Вам все еще нужно добавить столбец с информацией о внешнем ключе.Например:

class B(Base):
    __tablename__ = 'bs'
    id = Column(Integer, primary_key=True)
    a_id = Column(Integer, ForeignKey('as.id'), name="a")
    a = relation(A)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...