docs: record SQLite reconciliation verification

This commit is contained in:
Ed1s0nZ committed 2026-10-10 20:45:59 +08:00
1 parent 7f8dab4ec9
commit f2f4416af2
1 file changed
+27
@@ -0,0 +1,27 @@
# SQLite 启动结构补齐验证
- Phase: F5 complete
- Date: 2026-10-10
- Implementation commit: 7f8dab4e
## 自动化结果
- `go test ./internal/database ./internal/knowledge ./internal/handler`:通过。
- `go test ./internal/app`:通过。
- SQL 定义格式整理后 `go test ./internal/database`:通过。
- `git diff --check`:通过。
## 回归证据
schema_reconcile_test.go 覆盖:
- 新表/新列直接来自定义,无需旧迁移列表;默认值、CHECK、逗号与括号、带引号的标识符及虚拟生成列。
- 创建缺表后外键实际生效。
- 补字段或创建唯一索引失败时整个结构事务回滚,原行不变。
- NewDB 重开 SQLite 文件时补齐缺表以及原迁移列表未覆盖的 model_token_usage.cached_tokens、rbac_users.display_name、HITL 字段;逐表比较所有定义的列。
- NewKnowledgeDB 使用相同机制重开文件补结构。
- 连续启动两次,数据、额外表及字段保留。
- 历史漏洞外键迁移保留额外字段、触发器、索引和依赖记录,外键开关恢复,删除会话后漏洞保留。
- 既有批量任务审批测试切换到通用结构检查,依旧验证缺字段恢复和幂等。
所有数据库验证使用临时文件/内存,不修改用户实际数据库。未运行生产部署或全仓库测试;未合并功能分支。