summaryrefslogtreecommitdiff
path: root/alembic/autogenerate
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2019-10-14 19:26:09 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2019-10-14 19:26:09 +0000
commit04f50747e66e6b545b7e515d2775298c290a4f58 (patch)
tree1d57618aa021bdffcad1ac92d1d64eeb9b6295c1 /alembic/autogenerate
parentbad52b13b12b52b4eecca43866ab3a55da70a129 (diff)
parente90002d7fd325218c18f556daab94ab13b46877d (diff)
downloadalembic-04f50747e66e6b545b7e515d2775298c290a4f58.tar.gz
Merge "Accommodate for SQLAlchemy 1.4 deferral of index/unique names"
Diffstat (limited to 'alembic/autogenerate')
-rw-r--r--alembic/autogenerate/compare.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py
index 49ceb21..cacedee 100644
--- a/alembic/autogenerate/compare.py
+++ b/alembic/autogenerate/compare.py
@@ -338,7 +338,9 @@ def _compare_columns(
class _constraint_sig(object):
def md_name_to_sql_name(self, context):
- return self.name
+ return sqla_compat._get_constraint_final_name(
+ self.const, context.dialect
+ )
def __eq__(self, other):
return self.const == other.const
@@ -529,7 +531,8 @@ def _compare_indexes_and_uniques(
metadata_names = dict(
(c.md_name_to_sql_name(autogen_context), c)
for c in metadata_unique_constraints.union(metadata_indexes)
- if c.name is not None
+ if isinstance(c, _ix_constraint_sig)
+ or sqla_compat._constraint_is_named(c.const, autogen_context.dialect)
)
conn_uniques_by_name = dict((c.name, c) for c in conn_unique_constraints)
@@ -556,7 +559,11 @@ def _compare_indexes_and_uniques(
)
metadata_indexes_by_sig = dict((ix.sig, ix) for ix in metadata_indexes)
unnamed_metadata_uniques = dict(
- (uq.sig, uq) for uq in metadata_unique_constraints if uq.name is None
+ (uq.sig, uq)
+ for uq in metadata_unique_constraints
+ if not sqla_compat._constraint_is_named(
+ uq.const, autogen_context.dialect
+ )
)
# assumptions: