是否可以从列中删除唯一约束?

Is it possible to drop a unique constraint from a column?

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

flask db migrate
flask db upgrade

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

是否有使用 flask-migrate 执行此操作的简单方法,或者我应该切换到 alembic(我知道 flask-migrate 只是环绕)?我不想放弃整个 table。感谢您的帮助!

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