summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-08-07 14:00:26 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-08-07 14:00:26 -0400
commit07f9105775668fa3461e65a41f8402382ad8cbea (patch)
treeb242b661351305d4b5e7bd5d9ccbe17c70748c15
parentf38eaad4a80d7e3d893c3044162971971ae009bf (diff)
parentdddfffc737c6e58f8949117b059c4ef13b2b72c3 (diff)
downloadalembic-07f9105775668fa3461e65a41f8402382ad8cbea.tar.gz
Merge remote-tracking branch 'github/pr/14' into pr14
-rw-r--r--alembic/autogenerate/render.py12
-rw-r--r--tests/test_autogen_render.py14
2 files changed, 18 insertions, 8 deletions
diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py
index 3828d87..1f05c66 100644
--- a/alembic/autogenerate/render.py
+++ b/alembic/autogenerate/render.py
@@ -377,18 +377,14 @@ def _fk_colspec(fk, metadata_schema):
never tries to resolve the remote table.
"""
- if metadata_schema is None:
- return fk._get_colspec()
- else:
+ colspec = fk._get_colspec()
+ if metadata_schema is not None and colspec.count(".") == 1:
# need to render schema breaking up tokens by hand, since the
# ForeignKeyConstraint here may not actually have a remote
# Table present
- tokens = fk._colspec.split(".")
# no schema in the colspec, render it
- if len(tokens) == 2:
- return "%s.%s" % (metadata_schema, fk._colspec)
- else:
- return fk._colspec
+ colspec = "%s.%s" % (metadata_schema, colspec)
+ return colspec
def _render_foreign_key(constraint, autogen_context):
rendered = _user_defined_render("foreign_key", constraint, autogen_context)
diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py
index a4f14bd..ba8ba2d 100644
--- a/tests/test_autogen_render.py
+++ b/tests/test_autogen_render.py
@@ -567,6 +567,20 @@ render:primary_key\n)"""
"name='fk1', use_alter=True)"
)
+ def test_render_fk_constraint_w_metadata_schema(self):
+ m = MetaData(schema="foo")
+ t1 = Table('t', m, Column('c', Integer))
+ t2 = Table('t2', m, Column('c_rem', Integer))
+
+ fk = ForeignKeyConstraint([t1.c.c], [t2.c.c_rem], onupdate="CASCADE")
+ if not util.sqla_08:
+ t1.append_constraint(fk)
+
+ eq_ignore_whitespace(
+ re.sub(r"u'", "'", autogenerate.render._render_constraint(fk, self.autogen_context)),
+ "sa.ForeignKeyConstraint(['c'], ['foo.t2.c_rem'], onupdate='CASCADE')"
+ )
+
def test_render_check_constraint_literal(self):
eq_ignore_whitespace(
autogenerate.render._render_check_constraint(