|
|
|
|
|
# Tasks: Analysis Storage Refactor
|
|
|
|
|
|
|
|
|
|
|
|
## 1. StorageManager 扩展
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 1.1 在 `StorageManager` 中新增 `cache_get()` 通用缓存读取方法
|
|
|
|
|
|
- [x] 1.2 在 `StorageManager` 中新增 `cache_set()` 通用缓存写入方法
|
|
|
|
|
|
- [x] 1.3 在 `StorageManager` 中新增 `cache_delete()` 通用缓存删除方法
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 数据迁移
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 2.1 创建 `app/analysis_migration.py`,实现 SQLite → MySQL 迁移逻辑
|
|
|
|
|
|
- [x] 2.2 在 `app/main.py` 的 `lifespan` 中调用迁移函数,启动时自动迁移
|
|
|
|
|
|
- [x] 2.3 迁移幂等性:检测 MySQL 表是否已有数据,有则跳过
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 降级逻辑集成
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 3.1 修改 `app/analysis_db.py`,`get_analysis_db()` 根据 MySQL 可用性返回 Session
|
|
|
|
|
|
- [x] 3.2 实现 MySQL 不可用时降级到 SQLite 的逻辑
|
|
|
|
|
|
- [x] 3.3 保留 Redis 缓存能力(通过 StorageManager 通用缓存方法)
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 表结构初始化
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 4.1 在 `app/main.py` 的 `lifespan` 中创建 analysis 表(MySQL)
|
|
|
|
|
|
- [x] 4.2 验证 14 张表在 MySQL 中正确创建
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 测试与验证
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 5.1 验证 Redis 缓存命中场景
|
|
|
|
|
|
- [x] 5.2 验证 Redis 缓存未命中回源 MySQL 场景
|
|
|
|
|
|
- [x] 5.3 验证 MySQL 不可用降级到 SQLite 场景
|
|
|
|
|
|
- [x] 5.4 验证数据迁移完整性
|
|
|
|
|
|
- [x] 5.5 验证现有测试套件全部通过(101 passed, 2 xfailed)
|