Files
one_divine_lot/docs/04-迭代记录/06-数据存储SQLite/迭代目标.md
T
kyugao dd98b4d45b docs(迭代06): 数据存储SQLite迭代文档 + 需求归档(R-008)
- 新增 02-计划/计划-数据存储SQLite.md(PLAN-007)
- 新增 04-迭代记录/06-数据存储SQLite/ 五份文档(迭代目标/技术实现方案/验收标准/UI交互调用分析/迭代复盘)
- 归档 R-008 至 已完成/(含归档头 + 讨论记录索引),索引更新为已实现(已归档)
- 设计约束更新:技术方案约束-012 标注 SQLite 变更、数据存储设计.md 第 9 节变更预告
- 需求池说明.md 新增「归档与转正规范」;迭代记录说明.md 新增「实现经验沉淀」
- 验收标准修正 db 文件名笔误(one-divine-lot.db → store.db)
2026-09-01 18:04:28 +08:00

28 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 迭代目标:06-数据存储SQLiteJSON → SQLite 存储引擎替换)
## 目标
将神之一手的数据存储从 JSON data storestore.json / store.market.json / store.schema.json)升级为 **SQLite 数据库**node:sqlite),**仅存储引擎替换、对外行为不变**:引入 strategy_holdings(持仓生命周期表)+ market_quotes_cache 两表,存储层升级为单票持仓生命周期(openHolding/addShares/reduceShares/closeHolding),策略定义仍存 DSH settings,一次性迁移 + 启动自动迁移(幂等),JSON 迁移后废弃(迁移前自动备份)。
## 目标描述
- 范围:R-008(已定稿 2026-09-01D1-D8 全部确认);不新增其他功能域;
- 要解决的问题:JSON 全量读写无法支撑复杂查询/筛选(按 code/时间/策略),且未来交易记录/复盘等多数据集统一存储需要数据库底座(目标-003/005/006);
- 引用需求:**R-008(已定稿,2026-09-01**
- 实现方式:node:sqliteNode ≥22.5,实测 22.23.1 可用)+ SqliteStore 封装隔离 experimental 风险 + 启动自动迁移(幂等)+ JSON 废弃(D1-D8);
- 关联设计约束:技术约束-012(变更)、数据存储设计.md(第 9 节变更预告落实)。
## 目标讨论过程
- 2026-09-01 老师提出需求:准备上 SQLite,现在基于 JSON 文件(T-008 入池);
- 2026-09-01 第一轮讨论定稿(D1-D8):动机=复杂查询+未来铺路;node:sqlite(实测可用);仅引擎替换;strategy_holdings+market_quotes_cache 两表(持仓生命周期表 + 行情极简两列缓存表);存储层单票生命周期操作;策略仍存 settings;一次性迁移脚本+启动自动迁移;JSON 迁移后废弃;P1;
- 2026-09-01 实测验证:本机 Node v22.23.1node:sqlite 可用(DatabaseSync,内置 SQLite 3.51.3),标记 Experimentalbetter-sqlite3 需编译(倾向稳妥+零依赖分发 → 选 node:sqlite);
- 2026-09-01 三要素核对通过,转正为 R-008,进入迭代 06。
## 对老师的配合需求
- 确认迭代 06 计划与验收标准(PLAN-007);
- 构建安装后重启 DSH 配合验证(首次启动自动迁移真实数据);
- 验证迁移结果:store.json/store.market.json 数据正确落 SQLite(备份文件留存),份额分配/行情显示不回归;
- 验证持仓生命周期:加仓/减仓/清仓操作后当前持仓与历史(holding_id/created_at/closed_at)正确,删除策略/一键清零后历史保留。