小编Eri*_*ric的帖子

如何通过SQLAlchemy在现有表列上添加外键约束?

我正在使用Flask,Alembic和PostgreSQL与SQLAlchemy.我有location_messages一个列的现有表campaign_id.这是最初在模型中使用代码创建的

campaign_id = db.Column(db.Integer)
Run Code Online (Sandbox Code Playgroud)

我想为它添加一个外键,所以我更新了模型

campaign_id = db.Column(db.Integer, db.ForeignKey('campaigns.id'))
Run Code Online (Sandbox Code Playgroud)

我跑了revision --autogenerate但它没有创建任何东西 - 所以我一直在查看文档,但我不能理解我的用法语法.对于它的价值,在Alembic中从头开始创建表(放下它之后)是

op.create_table('location_messages',
[...]
sa.Column('campaign_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['campaign_id'], ['campaigns.id'], ),
sa.PrimaryKeyConstraint('id')
)
Run Code Online (Sandbox Code Playgroud)

但对于我的生活,我找不到一种方法来为现有的桌子做这件事.有没有办法获取表的实例并将其分配ForeignKeyConstraint给列?

python sqlalchemy flask flask-sqlalchemy alembic

10
推荐指数
1
解决办法
8767
查看次数

标签 统计

alembic ×1

flask ×1

flask-sqlalchemy ×1

python ×1

sqlalchemy ×1