2016-11-11 4 views
0

У меня есть таблица, которая выглядит, как этотAlembic: Включить ограничение для отклонения строки с характером

> select * from mytable 
    id  value 
0 1 hello world 
1 2 hello_world 
2 3 hello+world 

Я пытаюсь навязать Alembic проверочное ограничение, где значения в value не может иметь : характер. Как бы это сделать, используя объект alembic.op? Каковы функции upgrade() и downgrade()?

Редактировать: БД, которую я использую, - это Mysql.

+0

Как можно применить это ограничение? По новым данным или по существующим данным? Что делать, если существующие данные нарушают указанное ограничение? Добавление ограничений также может быть - и есть - конкретный бит БД. Какую БД вы используете? –

+0

@ IljaEverilä Все верно. Предполагается, что в таблице есть некоторые данные, но они не нарушают ограничение. БД, которую я использую, - это Mysql. – hlin117

ответ

1

В этом случае ограничение проверки работы

def upgrade(): 
    op.create_check_constraint("constraint_name_here", "mytable", "value not like '%:%'") 

def downgrade(): 
    op.drop_constraint("constraint_name_here", "mytable", type_="check") 

Но MySQL не поддерживает проверки ограничений. ¯_ (ツ) _/¯