2016-11-11 4 views
0

로 문자열을 거부하는 제약 조건을 포함 내가 value의 값이 : 문자를 가질 수없는 증류기 점검 제한 조건을 부과하기 위해 노력하고있어이증류기는 : 문자

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

처럼 보이는 테이블이 있습니다. alembic.op 개체를 사용하면 어떻게됩니까? upgrade()downgrade() 기능은 무엇입니까?

편집 : 사용중인 DB는 MySQL입니다. 이 경우

+0

이 제약 조건은 어떻게 적용됩니까? 새 데이터 또는 기존 데이터에 어떻게 든? 기존 데이터가 상기 제약 조건을 위반하면 어떻게해야합니까? 제약 조건 추가는 약간의 DB에만 적용될 수 있습니다. 어떤 DB를 사용하고 있습니까? –

+0

@ IljaEverilä 모두 사실입니다. 테이블에 일부 데이터가 있지만 제약 조건을 위반하지 않는다고 가정합니다. 내가 사용하는 DB는 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은 점검 제한 조건을 지원하지 않습니다.