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
# 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:
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)
])
)
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.
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__)
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(
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