【问题标题】:Is it possible to drop a unique constraint from a column?是否可以从列中删除唯一约束?
【发布时间】:2022-01-04 01:43:01
【问题描述】:

我试过简单地删除 unique=True 约束并运行

flask db migrate
flask db upgrade

在命令行中,但是当我运行我的烧瓶应用程序时,我仍然收到 (sqlite3.IntegrityError) UNIQUE constraint failed 错误。

有没有一种简单的方法可以使用 flask-migrate 来做到这一点,或者我应该切换到 alembic(我知道 flask-migrate 只是围绕着它)?我宁愿不删除整个表。感谢您的帮助!

【问题讨论】:

    标签: python sqlite sqlalchemy alembic flask-migrate


    【解决方案1】:

    Flask-Migrate,或者更确切地说是 Alembic,将 not autodetect anonymous constraints。但是您可以创建手动 Alembic 迁移文件来删除约束。

    创建一个空的迁移文件:

    flask db revision -m 'Drop unique constraint'
    

    编辑文件以删除约束:

    def upgrade():
        op.drop_constraint("name_of_constraint", "table_name")
    
    def downgrade():
        op.create_index(...)
    

    如果可能的话,我建议您从最初创建约束的迁移文件中复制create_index

    然后就可以正常升级数据库了:

    flask db upgrade
    

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 2012-04-18
      • 2023-03-22
      • 2012-09-02
      • 2022-01-14
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多