From: Mike Bayer Date: Mon, 15 Apr 2013 15:22:37 +0000 (-0400) Subject: Repaired autogenerate rendering of ForeignKeyConstraint X-Git-Tag: rel_0_6_0~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4a274c2ab2ef00eb87a12cc80b4b030165389ee;p=thirdparty%2Fsqlalchemy%2Falembic.git Repaired autogenerate rendering of ForeignKeyConstraint to include use_alter argument, if present. --- diff --git a/alembic/autogenerate.py b/alembic/autogenerate.py index 6aaf2c58..600ce92d 100644 --- a/alembic/autogenerate.py +++ b/alembic/autogenerate.py @@ -677,6 +677,8 @@ def _render_foreign_key(constraint, autogen_context): opts.append(("initially", repr(constraint.initially))) if constraint.deferrable: opts.append(("deferrable", repr(constraint.deferrable))) + if constraint.use_alter: + opts.append(("use_alter", repr(constraint.use_alter))) apply_metadata_schema = constraint.parent.metadata.schema return "%(prefix)sForeignKeyConstraint([%(cols)s], "\ diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index ece7674d..a62e1988 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -6,6 +6,12 @@ Changelog .. changelog:: :version: 0.6.0 + .. change:: + :tags: bug + + Repaired autogenerate rendering of ForeignKeyConstraint + to include use_alter argument, if present. + .. change:: :tags: feature :pullreq: 35 diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index c9400294..8cb08962 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -1092,6 +1092,19 @@ render:primary_key\n)""" "sa.ForeignKeyConstraint(['c'], ['t2.c_rem'], initially='XYZ')" ) + def test_render_fk_constraint_use_alter(self): + m = MetaData() + Table('t', m, Column('c', Integer)) + t2 = Table('t2', m, Column('c_rem', Integer, + ForeignKey('t.c', name="fk1", use_alter=True))) + const = list(t2.foreign_keys)[0].constraint + + eq_ignore_whitespace( + autogenerate._render_constraint(const, self.autogen_context), + "sa.ForeignKeyConstraint(['c_rem'], ['t.c'], " + "name='fk1', use_alter=True)" + ) + def test_render_check_constraint_literal(self): eq_ignore_whitespace( autogenerate._render_check_constraint(