From a8860285dfe35a612f0f966110c79b2d96b08d54 Mon Sep 17 00:00:00 2001 From: cuckoo711 <3038604221@qq.com> Date: Thu, 7 Aug 2025 13:03:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor(src/common/database):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A8=A1=E5=9E=8B=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AE=B5=E9=BB=98=E8=AE=A4=E5=80=BC=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 get_sql_default_value 函数的 db_type 参数,改为从 field_obj 参数中获取必要信息 - 优化了 add_column 方法中的现有列检查逻辑,提高了代码可读性和效率 -通过这些修改,简化了数据库字段的默认值处理,增强了代码的可维护性 --- src/common/database/database_model.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/common/database/database_model.py b/src/common/database/database_model.py index c1e1ac12..50e52e19 100644 --- a/src/common/database/database_model.py +++ b/src/common/database/database_model.py @@ -441,7 +441,7 @@ def initialize_database(): return "TEXT" # 默认回退类型 # 辅助函数:将 Peewee 字段的默认值转换为 SQL 语句中的 DEFAULT 子句 - def get_sql_default_value(field_obj, db_type): + def get_sql_default_value(field_obj): if field_obj.default is None: return "" # 没有定义默认值 @@ -543,7 +543,6 @@ def initialize_database(): continue # 获取现有列 - existing_columns = set() if db_type == "sqlite": cursor = db.execute_sql(f"PRAGMA table_info('{table_name}')") existing_columns = {row[1] for row in cursor.fetchall()} @@ -572,7 +571,7 @@ def initialize_database(): sql_type = f"VARCHAR({field_obj.max_length})" null_clause = " NULL" if field_obj.null else " NOT NULL" - default_clause = get_sql_default_value(field_obj, db_type) + default_clause = get_sql_default_value(field_obj) # 如果字段定义为 NOT NULL 且无法在 SQL DDL 中提供字面默认值 (如可调用默认值), # 为了避免在有数据的表中添加列时失败,暂时将其添加为 NULLABLE。