summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-03-12 15:34:09 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2013-03-12 15:34:09 -0400
commit088efe30db2072d5cc852de535122f551021e873 (patch)
tree0c4344d54ad5413364aa9eb819fb938f3116a4eb
parent35f8e319b07882dab83f144688d872a9fe507a46 (diff)
downloadalembic-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.py2
-rw-r--r--docs/build/changelog.rst8
-rw-r--r--tests/test_autogenerate.py22
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()),