]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Fixed missing prefix on FetchedValue - Fixes: #1633 1691/head
authordavid-fed <47917339+david-fed@users.noreply.github.com>
Mon, 7 Jul 2025 20:33:30 +0000 (22:33 +0200)
committerdavid-fed <47917339+david-fed@users.noreply.github.com>
Mon, 7 Jul 2025 20:33:30 +0000 (22:33 +0200)
alembic/autogenerate/render.py
tests/test_autogen_render.py

index bd20ced8da6c10293ab72d6e69b0da31333f5597..64fe72b120ffd43e1e492d91eef519dbaa01295f 100644 (file)
@@ -813,6 +813,8 @@ def _render_server_default(
             return _render_potential_expr(
                 default.arg, autogen_context, is_server_default=True
             )
+    elif isinstance(default, sa_schema.FetchedValue):
+        return _render_fetched_value(autogen_context)
 
     if isinstance(default, str) and repr_:
         default = repr(re.sub(r"^'|'$", "", default))
@@ -850,6 +852,12 @@ def _render_identity(
     }
 
 
+def _render_fetched_value(autogen_context: AutogenContext) -> str:
+    return "%(prefix)sFetchedValue()" % {
+        "prefix": _sqlalchemy_autogenerate_prefix(autogen_context),
+    }
+
+
 def _repr_type(
     type_: TypeEngine,
     autogen_context: AutogenContext,
index c098aca4e561cdf0bde9119834396cd46d4ca4f5..9ca572fb2a1cb5066ddc1a1b3e678d3755863e15 100644 (file)
@@ -11,6 +11,7 @@ from sqlalchemy import DATETIME
 from sqlalchemy import DateTime
 from sqlalchemy import DefaultClause
 from sqlalchemy import Enum
+from sqlalchemy import FetchedValue
 from sqlalchemy import ForeignKey
 from sqlalchemy import ForeignKeyConstraint
 from sqlalchemy import func
@@ -2058,6 +2059,15 @@ class AutogenRenderTest(TestBase):
             "server_default='0', nullable=True)",
         )
 
+    def test_render_server_default_fetched_value(self):
+        c = Column("value", Integer, server_default=FetchedValue())
+        result = autogenerate.render._render_column(c, self.autogen_context)
+        eq_(
+            result,
+            "sa.Column('value', sa.Integer(), "
+            "server_default=sa.FetchedValue(), nullable=True)",
+        )
+
     def test_render_modify_reflected_int_server_default(self):
         op_obj = ops.AlterColumnOp(
             "sometable",