From: Mike Bayer Date: Wed, 5 Dec 2012 18:54:25 +0000 (-0500) Subject: Autogenerate will include "autoincrement=False" X-Git-Tag: rel_0_4_1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97b722728c2b63321df718807d11d23d483593b2;p=thirdparty%2Fsqlalchemy%2Falembic.git Autogenerate will include "autoincrement=False" in the rendered table metadata if this flag was set to false on the source :class:`.Column` object. #94 --- diff --git a/alembic/autogenerate.py b/alembic/autogenerate.py index 7383baec..57227953 100644 --- a/alembic/autogenerate.py +++ b/alembic/autogenerate.py @@ -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)) diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index 1ddb920d..2d52e19b 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -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 diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 9cc94b9a..3b008ac6 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -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(