Skip to content

apply op.f() to all reflected constraint names? #264

@sqlalchemy-bot

Description

@sqlalchemy-bot

Migrated issue, originally created by Michael Bayer (@zzzeek)

probably. these names are from the DB and should never have naming conventions applied to them.

diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py
index 2aae962..410b313 100644
--- a/alembic/autogenerate/compare.py
+++ b/alembic/autogenerate/compare.py
@@ -4,7 +4,7 @@ import logging
 from .. import compat
 from sqlalchemy.util import OrderedSet
 import re
-from .render import _user_defined_render
+from .render import _user_defined_render, conv
 import contextlib
 from alembic.ddl.base import _fk_spec
 
@@ -81,6 +81,7 @@ def _compare_tables(conn_table_names, metadata_table_names,
     existing_tables = conn_table_names.intersection(metadata_table_names)
 
     existing_metadata = sa_schema.MetaData()
+
     conn_column_info = {}
     for s, tname in existing_tables:
         name = sa_schema._get_table_key(tname, s)
@@ -125,7 +126,7 @@ def _compare_tables(conn_table_names, metadata_table_names,
 def _make_index(params, conn_table):
     # TODO: add .info such as 'duplicates_constraint'
     return sa_schema.Index(
-        params['name'],
+        conv(params['name']),
         *[conn_table.c[cname] for cname in params['column_names']],
         unique=params['unique']
     )
@@ -135,7 +136,7 @@ def _make_unique_constraint(params, conn_table):
     # TODO: add .info such as 'duplicates_index'
     return sa_schema.UniqueConstraint(
         *[conn_table.c[cname] for cname in params['column_names']],
-        name=params['name']
+        name=conv(params['name'])
     )
 
 
@@ -151,7 +152,7 @@ def _make_foreign_key(params, conn_table):
         ondelete=params.get('ondelete'),
         deferrable=params.get('deferrable'),
         initially=params.get('initially'),
-        name=params['name']
+        name=conv(params['name'])
     )
     # needed by 0.7
     conn_table.append_constraint(const)
diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py
index 13830cf..7ff6f3e 100644
--- a/alembic/autogenerate/render.py
+++ b/alembic/autogenerate/render.py
@@ -18,6 +18,8 @@ try:
         else:
             return name
 except ImportError:
+    conv = lambda name: name
+
     def _render_gen_name(autogen_context, name):
         return name
 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions