From: Mike Bayer Date: Thu, 16 Feb 2023 02:34:30 +0000 (-0500) Subject: dont use server_default render_item for SQL compare X-Git-Tag: rel_1_9_4~1^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a69e14205e49745bf7514776dc53a95c3de27c2a;p=thirdparty%2Fsqlalchemy%2Falembic.git dont use server_default render_item for SQL compare Removed a mis-use of the :paramref:`.EnvironmentContext.configure.render_item` callable where the "server_default" renderer would be erroneously used within the server default comparison process, which is working against SQL expressions, not Python code. Change-Id: Id6fad1e6f5ac0a68bbd0e6b7e6088e451bf6dc2b References: #641 Fixes: #1180 --- diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py index 8301e34c..828a4cd5 100644 --- a/alembic/autogenerate/compare.py +++ b/alembic/autogenerate/compare.py @@ -21,7 +21,6 @@ from sqlalchemy import types as sqltypes from sqlalchemy.util import OrderedSet from alembic.ddl.base import _fk_spec -from .render import _user_defined_render from .. import util from ..operations import ops from ..util import sqla_compat @@ -1003,11 +1002,6 @@ def _render_server_default_for_compare( metadata_col: Column, autogen_context: AutogenContext, ) -> Optional[str]: - rendered = _user_defined_render( - "server_default", metadata_default, autogen_context - ) - if rendered is not False: - return rendered if isinstance(metadata_default, sa_schema.DefaultClause): if isinstance(metadata_default.arg, str): diff --git a/docs/build/unreleased/1180.rst b/docs/build/unreleased/1180.rst new file mode 100644 index 00000000..e2771add --- /dev/null +++ b/docs/build/unreleased/1180.rst @@ -0,0 +1,9 @@ +.. change:: + :tags: bug, autogenerate + :tickets: 1180 + + Removed a mis-use of the + :paramref:`.EnvironmentContext.configure.render_item` callable where the + "server_default" renderer would be erroneously used within the server + default comparison process, which is working against SQL expressions, not + Python code.