2012-10-29 3 views
0

실수로 같은 테이블과 열을 참조하는 두 개의 외래 키를 추가했습니다. SHOW CREATE TABLE table_a 모양 같은 :이 시점에서SQLAlchemy를 사용하여 외래 키 중복 제거

table_a | CREATE TABLE `table_a` (
`id` char(36) NOT NULL, 
`fk` int(11) default NULL, 
`created_at` datetime default NULL, 
PRIMARY KEY (`id`), 
KEY `fk` (`fk`), 
CONSTRAINT `table_a_ibfk_1` FOREIGN KEY (`fk`) REFERENCES `table_b` (`id`), 
CONSTRAINT `table_a_fkey` FOREIGN KEY (`fk`) REFERENCES `table_b` (`id`) ON DELETE CASCADE 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

내 유일한 해결책은 컬럼에있는 모든 키/제약 반복과 캐스케이드 키를 한 번 더 추가하여이 다음에 제거하는 것입니다.

SQLAlchemy Migrate을 사용하여 비 계단식 제약 조건 만 제거 할 수 있습니까?

답변

0

시도해 보셨습니까?

cons = ForeignKeyConstraint(columns=[table.c.fk], 
          refolumns=[table_b.c.id], 
          name="table_a_ibfk_1") 
cons.drop(engine=migrate_engine)