From 20326fe3f7d1757523c4407798689f99db7a1f24 Mon Sep 17 00:00:00 2001 From: Dimitris Theodorou Date: Sun, 19 Jan 2014 15:49:14 +0100 Subject: [PATCH] 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. --- alembic/autogenerate/compare.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) 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 -- 2.47.2