From 4d7a9aa693114827414488160d47d6add477828d Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 28 Jun 2009 23:13:12 +0000 Subject: [PATCH] fix MySQL drop constraint formats. test coverage needed. --- lib/sqlalchemy/dialects/mysql/base.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index a4cb70eafd..de315ab459 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1466,11 +1466,21 @@ class MySQLDDLCompiler(compiler.DDLCompiler): def visit_drop_constraint(self, drop): constraint = drop.element - is_fk = isinstance(constraint, sa_schema.ForeignKeyConstraint) + if isinstance(constraint, sa_schema.ForeignKeyConstraint): + qual = "FOREIGN KEY " + const = self.preparer.format_constraint(constraint) + elif isinstance(constraint, sa_schema.PrimaryKeyConstraint): + qual = "PRIMARY KEY " + const = "" + elif isinstance(constraint, sa_schema.UniqueConstraint): + qual = "INDEX " + const = self.preparer.format_constraint(constraint) + else: + qual = "" + const = self.preparer.format_constraint(constraint) return "ALTER TABLE %s DROP %s%s" % \ (self.preparer.format_table(constraint.table), - is_fk and "FOREIGN KEY " or "", - self.preparer.format_constraint(constraint)) + qual, const) class MySQLTypeCompiler(compiler.GenericTypeCompiler): def _extend_numeric(self, type_, spec): -- 2.47.3