]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Autogenerate will include "autoincrement=False"
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 5 Dec 2012 18:54:25 +0000 (13:54 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 5 Dec 2012 18:54:25 +0000 (13:54 -0500)
in the rendered table metadata
if this flag was set to false on the source
:class:`.Column` object.
#94

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

index 7383baec0c6ead169c5fe946124e2b58f7834824..57227953884a63dfb269a18f269238f303207d7b 100644 (file)
@@ -545,6 +545,9 @@ def _render_column(column, autogen_context):
                     _render_server_default(
                             column.server_default, autogen_context
                     )))
+    if not column.autoincrement:
+        opts.append(("autoincrement", column.autoincrement))
+
     if column.nullable is not None:
         opts.append(("nullable", column.nullable))
 
index 1ddb920d762c5bd1c8bb476e6643ed18b937146c..2d52e19bbc65a7bf8aad693448e1ea304277b390 100644 (file)
@@ -9,6 +9,15 @@ Changelog
     :version: 0.4.1
     :released:
 
+    .. change::
+        :tags: bug
+        :tickets: 94
+
+      Autogenerate will include "autoincrement=False"
+      in the rendered table metadata
+      if this flag was set to false on the source
+      :class:`.Column` object.
+
     .. change::
         :tags: feature
         :tickets: 66
index 9cc94b9a581d9ce6d715e5eff28751d234344b4b..3b008ac6f60d5df4d0e606b05772862ccfa766b8 100644 (file)
@@ -194,7 +194,7 @@ class ImplicitConstraintNoGenTest(AutogenTest, TestCase):
             "    sa.Column('id', mysql.INTEGER(display_width=11), "
                 "nullable=False),\n"
             "    sa.Column('value', mysql.TINYINT(display_width=1), "
-            "nullable=True),\n"
+            "autoincrement=False, nullable=True),\n"
             "    sa.PrimaryKeyConstraint('id')\n    )\n"
             "    op.drop_table('sometable')\n"
             "    ### end Alembic commands ###"
@@ -436,8 +436,8 @@ class AutogenerateDiffTestWSchema(AutogenTest, TestCase):
     op.drop_column('order', 'user_id', schema='%(schema)s')
     op.drop_column('address', 'street', schema='%(schema)s')
     op.create_table('extra',
-    sa.Column('x', sa.CHAR(length=1), nullable=True),
-    sa.Column('uid', sa.INTEGER(), nullable=True),
+    sa.Column('x', sa.CHAR(length=1), autoincrement=False, nullable=True),
+    sa.Column('uid', sa.INTEGER(), autoincrement=False, nullable=True),
     sa.ForeignKeyConstraint(['uid'], ['%(schema)s.user.id'], name='extra_uid_fkey'),
     sa.PrimaryKeyConstraint(),
     schema='%(schema)s'
@@ -896,6 +896,20 @@ class AutogenRenderTest(TestCase):
                 'nullable=False)'
         )
 
+    def test_render_col_autoinc_false_mysql(self):
+        c = Column('some_key', Integer, primary_key=True, autoincrement=False)
+        Table('some_table', MetaData(), c)
+        result = autogenerate._render_column(
+                    c, self.autogen_context
+                )
+        eq_(
+            result,
+            'sa.Column(\'some_key\', sa.Integer(), '
+                'autoincrement=False, '
+                'nullable=False)'
+        )
+
+
     def test_render_modify_type(self):
         eq_ignore_whitespace(
             autogenerate._modify_col(