summaryrefslogtreecommitdiff
path: root/alembic/autogenerate
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-12-13 10:05:55 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2019-12-13 13:37:44 -0500
commitf35e2fd109d2bff913032782d35ad6b397452a70 (patch)
tree911b469a5fb8b4c68fb498aed3aca223d507f9f6 /alembic/autogenerate
parent2eac31a66cd6ba550249355bcfde06661e02c822 (diff)
downloadalembic-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.py11
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)