f848e929 by 柴进

:bug: app_config 表移出 REQUIRED_TABLES: 不存在时 fail-safe 放行

自洽问题: 原先 REQUIRED_TABLES 里列了 nano_banana_app_config,
但 _check_version 明明有"读不到就放行"的 fail-safe。
同一张表一边说"必须存在",一边说"不存在也没事",逻辑矛盾。

结果是: 如果 migration 还没在生产 DB 跑, 1.1.0 客户端启动就会在
"表存在性校验"硬挂, 弹"应用启动失败,请联系 @柴进",
完全绕不过 fail-safe。

修正: app_config 作为"版本门禁"的后端存储不是启动必需品。
- 没表/没记录 → fail-safe 放行, 版本门禁临时关闭
- 有表+有记录 → 正常做版本校验
- migration 可以任意时刻跑, 不阻塞发布节奏
1 parent 6b7f0fa8
......@@ -26,7 +26,10 @@ logger = logging.getLogger(__name__)
VERSION_ERROR_PREFIX = "VERSION_TOO_OLD::"
REQUIRED_DB_FIELDS = ("host", "port", "user", "password", "database")
REQUIRED_TABLES = ("nano_banana_user_use_log", "nano_banana_user_log", "nano_banana_app_config")
# 注意 nano_banana_app_config 不在这里 ——
# 这张表是"版本门禁"的后端存储,不是启动必需。_check_version 里已经有 fail-safe:
# 表不存在 / 记录缺失 → WARNING 放行。这样 migration 可在任意时刻跑,不阻塞发布。
REQUIRED_TABLES = ("nano_banana_user_use_log", "nano_banana_user_log")
REQUIRED_USE_LOG_COLUMNS = (
"user_name", "device_name", "prompt", "result_path", "status",
"error_message", "model", "duration_ms", "finish_reason",
......