]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Added support for options like "name" etc. to be rendered
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 16 May 2013 18:41:13 +0000 (14:41 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 16 May 2013 18:41:13 +0000 (14:41 -0400)
within CHECK constraints in autogenerate.  Courtesy
Sok Ann Yap.  #125

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

index 600ce92dd0cd8d4f76f2f19e4fa17b91b7e87b4d..f1af020d0b116608e073fa8baf69e9e5f78d1fa4 100644 (file)
@@ -709,8 +709,10 @@ def _render_check_constraint(constraint, autogen_context):
     opts = []
     if constraint.name:
         opts.append(("name", repr(constraint.name)))
-    return "%(prefix)sCheckConstraint(%(sqltext)r)" % {
+    return "%(prefix)sCheckConstraint(%(sqltext)r%(opts)s)" % {
             "prefix": _sqlalchemy_autogenerate_prefix(autogen_context),
+            "opts": ", " + (", ".join("%s=%s" % (k, v)
+                            for k, v in opts)) if opts else "",
             "sqltext": str(
                 constraint.sqltext.compile(
                     dialect=autogen_context['dialect']
index 2674fdd93ddb63d555f9405af4c3c9cd46dab9f5..1b54325febad9542d7b1d1b19f96fc5cf40bbdc3 100644 (file)
@@ -6,6 +6,14 @@ Changelog
 .. changelog::
     :version: 0.6.0
 
+    .. change::
+      :tags: bug
+      :tickets: 125
+
+      Added support for options like "name" etc. to be rendered
+      within CHECK constraints in autogenerate.  Courtesy
+      Sok Ann Yap.
+
     .. change::
       :tags: misc
 
index 4ee5f0fe794f2a4bdb7d75919d0a68b8d188602f..9bdc2decafaf9f29efc1ffcfce65c0ef91ccf970 100644 (file)
@@ -1111,10 +1111,10 @@ render:primary_key\n)"""
     def test_render_check_constraint_literal(self):
         eq_ignore_whitespace(
             autogenerate._render_check_constraint(
-                CheckConstraint("im a constraint"),
+                CheckConstraint("im a constraint", name='cc1'),
                 self.autogen_context
             ),
-            "sa.CheckConstraint('im a constraint')"
+            "sa.CheckConstraint('im a constraint', name='cc1')"
         )
 
     def test_render_check_constraint_sqlexpr(self):