From b6a54190ed8a267ebe1a9bbda005ff2ce3f4b87f Mon Sep 17 00:00:00 2001 From: snaily Date: Thu, 8 May 2025 22:12:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(config):=20=E6=9B=B4=E6=96=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=B1=BB=E5=9E=8B=E8=AE=BE=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次提交主要更改了 `sync_initial_settings` 函数,增加了对 `DATABASE_TYPE` 设置的处理逻辑。具体变更包括: - 在从数据库更新内存设置时,跳过对 `DATABASE_TYPE` 的更新,并记录调试信息,说明该设置由环境变量控制。 - 在将内存设置同步到数据库时,同样跳过对 `DATABASE_TYPE` 的同步,并记录调试信息。 DATABASE_TYPE 配置项将不会从数据库加载,也不会被同步到数据库,确保了您可以通过环境配置来控制数据库类型。 --- app/config/config.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/config/config.py b/app/config/config.py index a1cece3..c8b39b8 100644 --- a/app/config/config.py +++ b/app/config/config.py @@ -274,6 +274,12 @@ async def sync_initial_settings(): updated_in_memory = False for key, db_value in db_settings_map.items(): + if key == "DATABASE_TYPE": + logger.debug( + f"Skipping update of '{key}' in memory from database. " + "This setting is controlled by environment/dotenv." + ) + continue if hasattr(settings, key): target_type = Settings.__annotations__.get(key) if target_type: @@ -342,6 +348,13 @@ async def sync_initial_settings(): existing_db_keys = set(db_settings_map.keys()) for key, value in final_memory_settings.items(): + if key == "DATABASE_TYPE": + logger.debug( + f"Skipping synchronization of '{key}' to database. " + "This setting is controlled by environment/dotenv." + ) + continue + # 序列化值为字符串或 JSON 字符串 if isinstance(value, (list, dict)): # 处理列表和字典 db_value = json.dumps(