【发布时间】:2016-07-12 13:15:03
【问题描述】:
我在 SQLAlchemy 中有两个模型,我已经自动加入外键,如下所示:
class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
name = Column(String(300), nullable=False)
metadata_id = Column(Integer, nullable=True, index=True)
class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True)
name = Column(String(300), nullable=False)
parent_metadata_id = \
Column(ForeignKey('parents.metadata_id'),
nullable=True, primary_key=True)
parent = relationship(u'Parent')
这很好,我可以很容易地从它的孩子那里访问父母。现在,由于超出此问题范围的技术原因,我不得不摆脱我的数据库中的外键。我试图在 SQLAlchemy 中解决这个问题,但没有一个替换代码(使用 primaryjoins 或 backrefs)起作用。我看到另一个答案here 只是说对 SQLAlchemy 撒谎并告诉它我有外键关系,但这使得 Alembic 尝试在我自动生成的每个新修订版上创建外键关系,这真的很烦人。这样做的正确方法是什么?
【问题讨论】:
-
投反对票的人,你能解释一下我的问题是什么问题吗?
标签: python mysql sqlalchemy alembic