From: Dimitris Theodorou Date: Sun, 19 Jan 2014 14:49:14 +0000 (+0100) Subject: Autogenerate index and unique's comparison takes schema into account X-Git-Tag: rel_0_6_3~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20326fe3f7d1757523c4407798689f99db7a1f24;p=thirdparty%2Fsqlalchemy%2Falembic.git Autogenerate index and unique's comparison takes schema into account The inspector now will recover the indexes and unique constraints of the table in the correct schema. Previously it was not taking schema into account, resulting in always re-creating the existing uniques and indexes. --- diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py index cf313bb5..95257d11 100644 --- a/alembic/autogenerate/compare.py +++ b/alembic/autogenerate/compare.py @@ -193,19 +193,20 @@ def _compare_indexes_and_uniques(schema, tname, object_filters, conn_table, metadata_indexes = set(metadata_table.indexes) # 1b. ... and from connection + conn_uniques = [] if conn_table is not None and hasattr(inspector, "get_unique_constraints"): try: - conn_uniques = inspector.get_unique_constraints(tname) + conn_uniques = inspector.get_unique_constraints(tname, + schema=schema) except (NotImplementedError, NoSuchTableError): - conn_uniques = [] - else: - conn_uniques = [] - + pass - try: - conn_indexes = inspector.get_indexes(tname) - except NoSuchTableError: - conn_indexes = [] + conn_indexes = [] + if conn_table is not None: + try: + conn_indexes = inspector.get_indexes(tname, schema=schema) + except NoSuchTableError: + pass # 2. convert conn-level objects from raw inspector records # into schema objects