From dd47fb5373076223352e6c2d40941d86988ac455 Mon Sep 17 00:00:00 2001 From: huuyafwww Date: Sat, 5 Oct 2024 02:39:02 +0900 Subject: [PATCH] fix: Fixed a bug that caused a syntax error when a function was specified to server_default when creating a column in MySQL. --- lib/sqlalchemy/dialects/mysql/base.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index aa99bf4d68..b841a20445 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1853,6 +1853,11 @@ class MySQLDDLCompiler(compiler.DDLCompiler): colspec.append("DEFAULT " + default) return " ".join(colspec) + def get_column_default_string(self, column): + if hasattr(column.server_default, 'arg') and isinstance(column.server_default.arg, functions.FunctionElement): + return f'({column.server_default.arg})' + return super().get_column_default_string(column) + def post_create_table(self, table): """Build table-level CREATE options like ENGINE and COLLATE.""" -- 2.47.3