feat(appdata): 增加归档导出校验脚本
This commit is contained in:
@@ -203,6 +203,24 @@ pnpm deploy:check-runtime http://localhost/api/v1/health/version <expected-commi
|
||||
|
||||
浏览器不再作为业务数据主存储。清浏览器缓存不会删除产品、项目、版本、任务、测试用例、Bug 等业务数据。
|
||||
|
||||
## AppData 归档与校验(V2.5)
|
||||
|
||||
V2.5 起,已迁移业务 key 的 `PUT /api/v1/data/:key` 会返回 `409 APP_DATA_WRITE_FROZEN`,读路径仍保留给历史核对和回滚。停用 AppData 写入前后都建议导出一份只读归档:
|
||||
|
||||
```bash
|
||||
pnpm appdata:archive:export -- --out backups/appdata-archive-$(date +%Y%m%d%H%M%S).json
|
||||
pnpm appdata:archive:verify -- --archive backups/appdata-archive-20260708120000.json
|
||||
```
|
||||
|
||||
归档 JSON 包含:
|
||||
|
||||
- `metadata.appVersion` / `metadata.appBuildTime` / `metadata.sourceCommit`:导出时的应用版本信息。
|
||||
- `keys`:本次导出的 AppData key 列表。
|
||||
- `rows[].valueChecksum`:每个 key 的 JSON 内容 SHA-256。
|
||||
- `metadata.payloadChecksum`:整份 key list + rows payload 的 SHA-256。
|
||||
|
||||
生产环境执行导出前需要确保 `DATABASE_URL` 指向当前 PostgreSQL。默认输出文件名为 `appdata-archive-<timestamp>.json`,该模式已加入 `.gitignore`;真实归档应放入服务器备份目录或对象存储,不提交到代码仓库。
|
||||
|
||||
## 升级流程
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user