From: Carlos Eduardo Rivera Date: Mon, 8 Sep 2014 22:43:08 +0000 (-0500) Subject: applied mikes patch X-Git-Tag: rel_0_7_0~78^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=699595e42246d2f5e21df0d7cc894ef884784334;p=thirdparty%2Fsqlalchemy%2Falembic.git applied mikes patch --- diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py index 477c10df..b59816d8 100644 --- a/alembic/autogenerate/compare.py +++ b/alembic/autogenerate/compare.py @@ -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): diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py index 0e30d5b5..3ecef3a4 100644 --- a/alembic/autogenerate/render.py +++ b/alembic/autogenerate/render.py @@ -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(