From: Mike Bayer Date: Sun, 28 Jun 2009 23:13:12 +0000 (+0000) Subject: fix MySQL drop constraint formats. test coverage needed. X-Git-Tag: rel_0_6_6~158 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d7a9aa693114827414488160d47d6add477828d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git fix MySQL drop constraint formats. test coverage needed. --- 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):