mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-09-07 00:36:36 +08:00
feat(config): 更新数据库类型设置的同步逻辑
本次提交主要更改了 `sync_initial_settings` 函数,增加了对 `DATABASE_TYPE` 设置的处理逻辑。具体变更包括: - 在从数据库更新内存设置时,跳过对 `DATABASE_TYPE` 的更新,并记录调试信息,说明该设置由环境变量控制。 - 在将内存设置同步到数据库时,同样跳过对 `DATABASE_TYPE` 的同步,并记录调试信息。 DATABASE_TYPE 配置项将不会从数据库加载,也不会被同步到数据库,确保了您可以通过环境配置来控制数据库类型。
This commit is contained in:
@@ -274,6 +274,12 @@ async def sync_initial_settings():
|
|||||||
updated_in_memory = False
|
updated_in_memory = False
|
||||||
|
|
||||||
for key, db_value in db_settings_map.items():
|
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):
|
if hasattr(settings, key):
|
||||||
target_type = Settings.__annotations__.get(key)
|
target_type = Settings.__annotations__.get(key)
|
||||||
if target_type:
|
if target_type:
|
||||||
@@ -342,6 +348,13 @@ async def sync_initial_settings():
|
|||||||
existing_db_keys = set(db_settings_map.keys())
|
existing_db_keys = set(db_settings_map.keys())
|
||||||
|
|
||||||
for key, value in final_memory_settings.items():
|
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 字符串
|
# 序列化值为字符串或 JSON 字符串
|
||||||
if isinstance(value, (list, dict)): # 处理列表和字典
|
if isinstance(value, (list, dict)): # 处理列表和字典
|
||||||
db_value = json.dumps(
|
db_value = json.dumps(
|
||||||
|
|||||||
Reference in New Issue
Block a user