summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-12-04 13:30:46 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-12-04 13:30:46 -0500
commit885848ee069ecf899fe59843100857ccb7a4c974 (patch)
tree13aac36d2e8468f7b54993a1a20870abbff6cc08
parent5f952f25caa688d89204d134ee867de7dbad917c (diff)
parent22667c19df7e30469b61f901cd6404f5d3a5cc14 (diff)
downloadalembic-885848ee069ecf899fe59843100857ccb7a4c974.tar.gz
Merge branch 'mysql-unique-index-removed' of https://bitbucket.org/jerdfelt/alembic into pr35
-rw-r--r--alembic/ddl/mysql.py2
-rw-r--r--tests/test_autogen_indexes.py19
2 files changed, 21 insertions, 0 deletions
diff --git a/alembic/ddl/mysql.py b/alembic/ddl/mysql.py
index b93d29f..cb9d634 100644
--- a/alembic/ddl/mysql.py
+++ b/alembic/ddl/mysql.py
@@ -102,6 +102,8 @@ class MySQLImpl(DefaultImpl):
# the name of the index may be the column name or it may
# be the name of the FK constraint.
for col in idx.columns:
+ if idx.unique:
+ continue
if idx.name == col.name:
conn_indexes.remove(idx)
removed.add(idx.name)
diff --git a/tests/test_autogen_indexes.py b/tests/test_autogen_indexes.py
index ad839c8..e2d9b4e 100644
--- a/tests/test_autogen_indexes.py
+++ b/tests/test_autogen_indexes.py
@@ -586,6 +586,25 @@ class MySQLUniqueIndexTest(AutogenerateUniqueIndexTest):
else:
assert False, "unexpected success"
+ def test_unique_index_foreign_key(self):
+ m1 = MetaData()
+ m2 = MetaData()
+
+ Table('unq_idx', m1,
+ Column('id', Integer, primary_key=True),
+ Column('x', String(20)),
+ Index('x', 'x', unique=True)
+ )
+
+ Table('unq_idx', m2,
+ Column('id', Integer, primary_key=True),
+ Column('x', String(20)),
+ Index('x', 'x', unique=True)
+ )
+
+ diffs = self._fixture(m1, m2)
+ eq_(diffs, [])
+
class NoUqReflectionIndexTest(NoUqReflection, AutogenerateUniqueIndexTest):
reports_unique_constraints = False