diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-03-12 15:34:09 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-03-12 15:34:09 -0400 |
commit | 088efe30db2072d5cc852de535122f551021e873 (patch) | |
tree | 0c4344d54ad5413364aa9eb819fb938f3116a4eb | |
parent | 35f8e319b07882dab83f144688d872a9fe507a46 (diff) | |
download | alembic-088efe30db2072d5cc852de535122f551021e873.tar.gz |
Autogenerate will render additional table keyword
arguments like "mysql_engine" and others within
op.create_table().
#110
-rw-r--r-- | alembic/autogenerate.py | 2 | ||||
-rw-r--r-- | docs/build/changelog.rst | 8 | ||||
-rw-r--r-- | tests/test_autogenerate.py | 22 |
3 files changed, 31 insertions, 1 deletions
diff --git a/alembic/autogenerate.py b/alembic/autogenerate.py index 9fb0ce2..91ddcfc 100644 --- a/alembic/autogenerate.py +++ b/alembic/autogenerate.py @@ -457,6 +457,8 @@ def _add_table(table, autogen_context): } if table.schema: text += ",\nschema=%r" % table.schema + for k in sorted(table.kwargs): + text += ",\n%s=%r" % (k.replace(" ", "_"), table.kwargs[k]) text += "\n)" return text diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index e4043de..a3ecb6b 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -7,6 +7,14 @@ Changelog :version: 0.5.0 .. change:: + :tags: bug + :tickets: 110 + + Autogenerate will render additional table keyword + arguments like "mysql_engine" and others within + op.create_table(). + + .. change:: :tags: feature :tickets: 108 diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 1ca5c36..2f541e8 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -197,7 +197,10 @@ class ImplicitConstraintNoGenTest(AutogenTest, TestCase): "nullable=False),\n" " sa.Column('value', mysql.TINYINT(display_width=1), " "autoincrement=False, nullable=True),\n" - " sa.PrimaryKeyConstraint('id')\n )\n" + " sa.PrimaryKeyConstraint('id'),\n" + " mysql_default_charset='utf8',\n" + " mysql_engine='MyISAM'\n" + " )\n" " op.drop_table('sometable')\n" " ### end Alembic commands ###" ) @@ -867,6 +870,23 @@ class AutogenRenderTest(TestCase): ")" ) + def test_render_addtl_args(self): + m = MetaData() + t = Table('test', m, + Column('id', Integer, primary_key=True), + Column('q', Integer, ForeignKey('bar.address.id')), + postgresql_arg1="some_arg", mysql_engine="InnoDB" + ) + eq_ignore_whitespace( + autogenerate._add_table(t, self.autogen_context), + "op.create_table('test'," + "sa.Column('id', sa.Integer(), nullable=False)," + "sa.Column('q', sa.Integer(), nullable=True)," + "sa.ForeignKeyConstraint(['q'], ['bar.address.id'], )," + "sa.PrimaryKeyConstraint('id')," + "mysql_engine='InnoDB',postgresql_arg1='some_arg')" + ) + def test_render_drop_table(self): eq_( autogenerate._drop_table(Table("sometable", MetaData()), |