我有一个'测试'有一个'名称'列没有约束。我需要更改通过给它'唯一'的约束。我应该怎么做?Alembic:如何添加唯一约束到现有的列
我应该使用op.alter_column('???')还是create_unique_constraint('???')? 新列不是create_unique_constraint,而不是现有的列?
我有一个'测试'有一个'名称'列没有约束。我需要更改通过给它'唯一'的约束。我应该怎么做?Alembic:如何添加唯一约束到现有的列
我应该使用op.alter_column('???')还是create_unique_constraint('???')? 新列不是create_unique_constraint,而不是现有的列?
from alembic import op op.create_unique_constraint('uq_user_name', 'user', ['name'], schema='my_schema')
下降,你需要: http://alembic.zzzcomputing.com/en/latest/ops.html#alembic.operations.Operations.drop_constraint
op.drop_constraint('uq_user_name', 'user', schema='my_schema')
由于以前的答案的链接没有更长的工作,这里是一个工作的答案:
个"""Make domain column unique Revision ID: 9cb14e885b40 Revises: 76c9f6e094e2 Create Date: 2016-07-14 15:54:19.300574 """ # revision identifiers, used by Alembic. revision = '9cb14e885b40' down_revision = '76c9f6e094e2' branch_labels = None depends_on = None from alembic import op import sqlalchemy as sa def upgrade(): # Applies a unique constraint on the 'instances' table for the column 'domain' op.create_index('instances_domain_unique', 'instances', ['domain'], unique=True) def downgrade(): # drops the unique constraint named 'instances_domain_unique' op.drop_index('instances_domain_unique')
可以应用约束而不丢弃和重新创建像这样的索引。 –
充分利用这些链接拒绝的权限的文档文件。答案应该包含代码示例,而不是直接指向链接(尽管您可能想引用它们在底部或“了解更多”) – Alvaro
链接已断开。无论如何,我认为这不会是一个长时间的答案,所以我想它本身应该已经被回答了。链接到文档将是一个加号为 –
未来的读者的例子代码是: 'from alembic import op' create - 'op.create_unique_constraint(“uq_user_name”,“user”,[“name”])' drop - 'op.drop_constraint('uq_user_name','user')' – idog