|
|
|
|
@ -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
|
|
|
|
|
|
|
|
|
|
## 结论
|
|
|
|
|
|
|
|
|
|
验证通过。实现符合设计,测试覆盖核心场景,代码审查和手动验证发现的问题均已修复。
|
|
|
|
|
|