]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Repaired autogenerate rendering of ForeignKeyConstraint
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 15 Apr 2013 15:22:37 +0000 (11:22 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 15 Apr 2013 15:22:37 +0000 (11:22 -0400)
to include use_alter argument, if present.

alembic/autogenerate.py
docs/build/changelog.rst
tests/test_autogenerate.py

index 6aaf2c589b27d882042293d12a0b7fd9e3c0afc4..600ce92dd0cd8d4f76f2f19e4fa17b91b7e87b4d 100644 (file)
@@ -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], "\
index ece7674d03be158f467652cc595ce71dc4431063..a62e198897922385ce70a97f8cfe47962b5a63fc 100644 (file)
@@ -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
index c9400294288715f13d47a42bde8457baf518e046..8cb08962d7efe3e102fe35c4562d863c1fd8ab77 100644 (file)
@@ -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(