]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
applied mikes patch
authorCarlos Eduardo Rivera <cerivera@fastmail.fm>
Mon, 8 Sep 2014 22:43:08 +0000 (17:43 -0500)
committerCarlos Eduardo Rivera <cerivera@fastmail.fm>
Mon, 8 Sep 2014 22:43:08 +0000 (17:43 -0500)
alembic/autogenerate/compare.py
alembic/autogenerate/render.py

index 477c10df06322547e650aca9dc03426a91cf4b30..b59816d8a0bfbd6a3c30cc3ac36c998adfd40310 100644 (file)
@@ -198,12 +198,9 @@ class _ix_constraint_sig(_constraint_sig):
 
 def _get_index_column_names(idx, autogen_context=None):
     if compat.sqla_08:
-        return [repr(getattr(exp, "name", None))
-                if isinstance(exp, sql.schema.Column)
-                else _render_potential_expr(exp, autogen_context)
-                for exp in idx.expressions]
+        return [getattr(exp, "name", None) for exp in idx.expressions]
     else:
-        return [repr(getattr(col, "name", None)) for col in idx.columns]
+        return [getattr(col, "name", None) for col in idx.columns]
 
 def _compare_indexes_and_uniques(schema, tname, object_filters, conn_table,
             metadata_table, diffs, autogen_context, inspector):
index 0e30d5b5ec49039a4ed12e7ad2cc780d0f7bf968..3ecef3a4b518e5f0fc59c6a1d8ac61e408d23982 100644 (file)
@@ -82,19 +82,26 @@ def _drop_table(table, autogen_context):
     text += ")"
     return text
 
+def _get_index_rendered_expressions(idx, autogen_context=None):
+    if compat.sqla_08:
+        return [repr(getattr(exp, "name", None))
+                if isinstance(exp, sql.schema.Column)
+                else _render_potential_expr(exp, autogen_context)
+                for exp in idx.expressions]
+    else:
+        return [repr(getattr(col, "name", None)) for col in idx.columns]
+
 def _add_index(index, autogen_context):
     """
     Generate Alembic operations for the CREATE INDEX of an
     :class:`~sqlalchemy.schema.Index` instance.
     """
-    from .compare import _get_index_column_names
-
     text = "%(prefix)screate_index(%(name)r, '%(table)s', [%(columns)s], "\
                     "unique=%(unique)r%(schema)s%(kwargs)s)" % {
         'prefix': _alembic_autogenerate_prefix(autogen_context),
         'name': _render_gen_name(autogen_context, index.name),
         'table': index.table.name,
-        'columns': ", ".join(_get_index_column_names(index, autogen_context)),
+        'columns': ", ".join(_get_index_rendered_expressions(index, autogen_context)),
         'unique': index.unique or False,
         'schema': (", schema='%s'" % index.table.schema) if index.table.schema else '',
         'kwargs': (', '+', '.join(