From 5c351d53d91fcf1d5f6c6d160b6a635527465d15 Mon Sep 17 00:00:00 2001 From: Lxy Date: Sun, 5 Jul 2026 00:25:39 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20config-to-mysql=20?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E6=8A=A5=E5=91=8A=EF=BC=8C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-07-04-config-to-mysql-verify.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/reports/2026-07-04-config-to-mysql-verify.md b/docs/superpowers/reports/2026-07-04-config-to-mysql-verify.md index 379b1c5..38cc67c 100644 --- a/docs/superpowers/reports/2026-07-04-config-to-mysql-verify.md +++ b/docs/superpowers/reports/2026-07-04-config-to-mysql-verify.md @@ -46,4 +46,21 @@ ## 结论 -验证通过。实现符合设计,测试覆盖核心场景,代码审查发现的 CRITICAL 和 IMPORTANT 问题已修复。 +### 重新验证发现的问题 + +**问题**: 应用启动时配置迁移被跳过,MySQL app_config 表为空。 + +**根因**: `app.mysql_database.MySQLSessionLocal` 在 `init_mysql()` 执行前被 `app.config_store` 模块通过 `from app.mysql_database import MySQLSessionLocal` 导入,捕获了初始值 `None`。后续 `init_mysql()` 重新赋值模块变量后,`app.config_store` 中的名称仍指向 `None`,导致 `ConfigStore` 无法获取有效的 MySQL session,迁移被跳过。 + +**修复**: +- `app/config_store.py`: 改为通过 `sys.modules` 动态读取 `app.mysql_database.MySQLSessionLocal`,始终获取最新值 +- `app/config_migration.py`: 使用 `store.session_maker` 检查 MySQL session 是否初始化 + +**修复验证**: +- 清理 app_config 表后启动应用,日志显示成功迁移 symbols 和 ai 配置 +- 数据库查询确认 `symbols` 配置包含 38 个品种(与 JSON 文件一致) +- 全部测试套件 110 passed, 2 xfailed + +## 结论 + +验证通过。实现符合设计,测试覆盖核心场景,代码审查和手动验证发现的问题均已修复。