diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-12-13 10:05:55 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-12-13 13:37:44 -0500 |
commit | f35e2fd109d2bff913032782d35ad6b397452a70 (patch) | |
tree | 911b469a5fb8b4c68fb498aed3aca223d507f9f6 /alembic/autogenerate | |
parent | 2eac31a66cd6ba550249355bcfde06661e02c822 (diff) | |
download | alembic-f35e2fd109d2bff913032782d35ad6b397452a70.tar.gz |
Provide a context for render_python_code
Fixed regression introduced by :ticket:`579` where server default rendering
functions began to require a dialect implementation, however the
:func:`.render_python_code` convenience function did not include one, thus
causing the function to fail when used in a server default context. The
function now accepts a migration context argument and also creates one
against the default dialect if one is not provided.
Change-Id: I190ddb8fb5bc54c6d850694e0015533c4997b71c
Fixes: #635
Diffstat (limited to 'alembic/autogenerate')
-rw-r--r-- | alembic/autogenerate/api.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/alembic/autogenerate/api.py b/alembic/autogenerate/api.py index 709e97d..db929d0 100644 --- a/alembic/autogenerate/api.py +++ b/alembic/autogenerate/api.py @@ -143,6 +143,7 @@ def render_python_code( render_as_batch=False, imports=(), render_item=None, + migration_context=None, ): """Render Python code given an :class:`.UpgradeOps` or :class:`.DowngradeOps` object. @@ -158,7 +159,15 @@ def render_python_code( "render_as_batch": render_as_batch, } - autogen_context = AutogenContext(None, opts=opts) + if migration_context is None: + from ..runtime.migration import MigrationContext + from sqlalchemy.engine.default import DefaultDialect + + migration_context = MigrationContext.configure( + dialect=DefaultDialect() + ) + + autogen_context = AutogenContext(migration_context, opts=opts) autogen_context.imports = set(imports) return render._indent( render._render_cmd_body(up_or_down_op, autogen_context) |