Подтвердить что ты не робот

Alembic: Как добавить уникальное ограничение в существующий столбец

У меня есть таблица "test", имеющая столбец "Name" без ограничений. Мне нужно ALTER этот столбец, дав ему UNIQUE ограничение. Как я должен это делать?

Должен ли я использовать op.alter_column('???') или create_unique_constraint('???')? Разве create_unique_constraint не для нового столбца, а не для существующего?

4b9b3361

Ответ 2

Вот рабочий ответ:

"""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')

Документы относительно op.create_index

Документы относительно op.drop_index