não sqlalchemy não criar a minha chave estrangeira
-
10-07-2019 - |
Pergunta
SqlAlchemy questão novato:
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)
Quando crio meu esquema de banco de dados, eu tenho duas tabelas, As e Bs, que têm uma coluna (id), mas não há nenhuma coluna a
em bs tabela que aponta para um.
O que posso estar fazendo de errado? Meu banco de dados é mysql, se isso importa.
Solução
relation()
só diz o mapeador de como são as duas tabelas relacionadas. Você ainda precisa adicionar uma coluna com a informação de chave estrangeira. Por exemplo:
class B(Base):
__tablename__ = 'bs'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('as.id'), name="a")
a = relation(A)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow