是否可以从列中删除唯一约束?
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
我试过简单地删除 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