4
我在使用Flask,Alembic和PostgreSQL和SQLAlchemy。我有一個現有的表location_messages
列campaign_id
。這是最初創建模型的代碼如何通過SQLAlchemy在現有表列添加外鍵約束?
campaign_id = db.Column(db.Integer)
我要外鍵添加到它,所以我更新了
campaign_id = db.Column(db.Integer, db.ForeignKey('campaigns.id'))
模型我跑了revision --autogenerate
,但它並沒有創造任何東西 - 所以我一直在尋找docs,但我無法理解我的使用語法。對於它的價值,從頭開始創建表在蒸餾器(滴加完畢)是
op.create_table('location_messages',
[...]
sa.Column('campaign_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['campaign_id'], ['campaigns.id'],),
sa.PrimaryKeyConstraint('id')
)
但對我的生活,我不能找到一種方法來對現有表做到這一點。有沒有辦法只是得到一個表的實例,並將ForeignKeyConstraint
分配給列?
在某些情況下,例如,當alembic遷移需要與SQLAlchemy模型保持同步時,最好使用明確的約束命名。否則,結果可能取決於某個'table_ibfk_#'編號,並刪除特定的FK問題。 – 2017-11-28 10:24:44