]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
move _get_index_column_names into autogenerate
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 13 Nov 2013 15:08:23 +0000 (10:08 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 13 Nov 2013 15:08:23 +0000 (10:08 -0500)
alembic/autogenerate/compare.py
alembic/autogenerate/render.py
alembic/compat.py

index ce3bc675ee8032847f7bc552218e0776c9f662b2..3b2e1d7698a9fb5894fd920e93396260d86ad982 100644 (file)
@@ -1,7 +1,7 @@
 from sqlalchemy.exc import NoSuchTableError
 from sqlalchemy import schema as sa_schema, types as sqltypes
 import logging
-from ..compat import get_index_column_names
+from .. import compat
 from .render import _render_server_default
 from sqlalchemy.util import OrderedSet
 
@@ -221,10 +221,18 @@ def _compare_uniques(schema, tname, object_filters, conn_table,
     # deduplication
     return c_keys
 
+def _get_index_column_names(idx):
+    if compat.sqla_08:
+        return [exp.name for exp in idx.expressions]
+    else:
+        return [col.name for col in idx.columns]
+
 def _compare_indexes(schema, tname, object_filters, conn_table,
             metadata_table, diffs, autogen_context, inspector,
             c_uniques_keys):
 
+
+
     try:
         reflected_indexes = inspector.get_indexes(tname)
     except NoSuchTableError:
@@ -259,7 +267,7 @@ def _compare_indexes(schema, tname, object_filters, conn_table,
         diffs.append(("add_index", meta))
         log.info("Detected added index '%s' on %s",
             key, ', '.join([
-                "'%s'" % get_index_column_names(meta)
+                "'%s'" % _get_index_column_names(meta)
                 ])
         )
 
@@ -272,8 +280,8 @@ def _compare_indexes(schema, tname, object_filters, conn_table,
         conn_index = c_objs[key]
         # TODO: why don't we just render the DDL here
         # so we can compare the string output fully
-        conn_exps = get_index_column_names(conn_index)
-        meta_exps = get_index_column_names(meta_index)
+        conn_exps = _get_index_column_names(conn_index)
+        meta_exps = _get_index_column_names(meta_index)
 
         # convert between both Nones (SQLA ticket #2825) on the metadata
         # side and zeroes on the reflection side.
index 0f31dbca3b55743235c4ea6fb80843e7d5b16ec4..610a4d47de03384abd23ff755e2929efa4fd5226 100644 (file)
@@ -2,9 +2,7 @@ from sqlalchemy import schema as sa_schema, types as sqltypes, sql
 import logging
 from .. import compat
 import re
-
-
-from ..compat import string_types, get_index_column_names
+from ..compat import string_types
 
 log = logging.getLogger(__name__)
 
@@ -56,10 +54,12 @@ 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 = "op.create_index('%(name)s', '%(table)s', %(columns)s, unique=%(unique)r%(schema)s%(kwargs)s)" % {
         'name': index.name,
         'table': index.table,
-        'columns': get_index_column_names(index),
+        'columns': _get_index_column_names(index),
         'unique': index.unique or False,
         'schema': (", schema='%s'" % index.table.schema) if index.table.schema else '',
         'kwargs': (', '+', '.join(
index 0f066aa95a57aabd274eb16c0769a87e1f07ff23..6e69418629164645f9e5f8625aeac525d93fcd82 100644 (file)
@@ -67,13 +67,6 @@ except AttributeError:
     def exec_(func_text, globals_, lcl):
         exec('exec func_text in globals_, lcl')
 
-if sa_version >= '0.8.0':
-    def get_index_column_names(idx):
-        return [exp.name for exp in idx.expressions]
-else:
-    def get_index_column_names(idx):
-        return [col.name for col in idx.columns]
-
 ################################################
 # cross-compatible metaclass implementation
 # Copyright (c) 2010-2012 Benjamin Peterson