diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-08-07 14:00:26 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-08-07 14:00:26 -0400 |
commit | 07f9105775668fa3461e65a41f8402382ad8cbea (patch) | |
tree | b242b661351305d4b5e7bd5d9ccbe17c70748c15 | |
parent | f38eaad4a80d7e3d893c3044162971971ae009bf (diff) | |
parent | dddfffc737c6e58f8949117b059c4ef13b2b72c3 (diff) | |
download | alembic-07f9105775668fa3461e65a41f8402382ad8cbea.tar.gz |
Merge remote-tracking branch 'github/pr/14' into pr14
-rw-r--r-- | alembic/autogenerate/render.py | 12 | ||||
-rw-r--r-- | tests/test_autogen_render.py | 14 |
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( |