补充三种数据库迁移嵌入检查并校正整改状态

This commit is contained in:
xuans 2026-09-27 17:06:42 +08:00
parent 41ab23b39c
commit a2dfd5ef69
2 changed files with 22 additions and 6 deletions

View File

@ -108,3 +108,19 @@ func TestSQLiteUpgradeAddsServerValidationCommand(t *testing.T) {
t.Fatalf("旧服务器记录的配置校验命令默认值错误:%s", validationCommand)
}
}
func TestAllSupportedMigrationFilesAreEmbedded(t *testing.T) {
drivers := []string{"sqlite", "mysql", "postgres"}
for _, driver := range drivers {
for version := 1; version <= latestMigrationVersion; version++ {
path := fmt.Sprintf("migrations/%s/%04d_%s.sql", driver, version, migrationName(version))
content, err := migrationFiles.ReadFile(path)
if err != nil {
t.Fatalf("%s 缺少第 %d 版迁移文件:%s:%v", driver, version, path, err)
}
if len(content) == 0 {
t.Fatalf("%s 第 %d 版迁移文件为空:%s", driver, version, path)
}
}
}
}

View File

@ -20,7 +20,7 @@
| 项目 | 当前事实 | 证据或命令 | 结论 |
|---|---|---|---|
| Git 工作区 | `main` 与 `Scert/main` 同步,工作区干净 | `git status --short --branch` | 已建立基线 |
| 后端模块 | `backend/go.mod` 声明 Go `1.26.6` | `Get-Content backend/go.mod` | 与当前 Go `1.26.2` 不一致 |
| 后端模块 | `backend/go.mod` 声明 Go `1.26.6`,模块内实际使用 `go1.26.6` | 在 `backend` 执行 `go version`、`go env GOVERSION GOTOOLCHAIN` | `GOTOOLCHAIN=auto`;根目录的 `1.26.2` 不代表后端构建版本 |
| Node.js | `v24.19.0` | `node --version` | 已记录 |
| npm | `11.17.0` | `npm.cmd --version` | 已记录 |
| Vue | 锁文件实际版本 `3.5.41` | `frontend/package-lock.json` | 已记录 |
@ -34,17 +34,17 @@
| 编号 | 状态 | 任务 | 当前问题 | 下一步交付 | 验证证据 |
|---|---:|---|---|---|---|
| P0-01 | [~] | 明确产品范围 | Wails 目录和构建产物仍在仓库,正式范围尚未落地 | 更新 README、发布文档和构建入口,明确 Web、Windows/Linux 服务端为正式范围 | 范围审查、发布包文件清单 |
| P0-02 | [x] | 建立完整任务清单 | 整改总清单已建立,本文件补充执行字段 | 持续维护状态、证据和复审结果 | 本文件提交记录 |
| P0-02 | [~] | 建立完整任务清单 | 已覆盖 44 项,逐项依赖、涉及文件和具体实机步骤仍需补充 | 持续维护状态、证据和复审结果 | 本文件提交记录 |
| P0-03 | [~] | 整理源码、构建产物和部署产物 | 已跟踪桌面二进制和桌面 dist;忽略规则覆盖不完整 | 完成边界规则,复审后从 Git 索引移除生成物但保留本地文件 | `git ls-files`、`git check-ignore`、工作区复核 |
| P0-04 | [!] | 统一开发和构建版本 | 声明 Go `1.26.6`,当前实机 Go `1.26.2` | 确定发布所需 Go 版本并统一模块、构建说明和验收机 | 版本矩阵、构建日志 |
| P0-04 | [~] | 统一开发和构建版本 | 模块实际使用 Go `1.26.6`,不存在此前误报的版本阻塞;历史文档仍需统一 | 统一模块、构建说明、锁文件和验收机版本记录 | 版本矩阵、构建日志 |
| P0-05 | [!] | 确认数据库正式支持矩阵 | 三种数据库均有代码,但 README、文档和实机证据口径不完全一致 | 明确 SQLite、MySQL、PostgreSQL 的正式级别、版本和迁移回滚要求 | 三数据库迁移、备份恢复和连接测试 |
| P0-06 | [~] | 建立统一领域模型 | 已有域名、证书、任务、服务器等实体,项目和部署关联仍需审查 | 补齐资源关系图、外键/归属和任务关联 | 模型文档、迁移检查、接口测试 |
| P0-07 | [~] | 增加项目级权限和资源隔离 | 用户组和角色已有实现,项目级资源边界未闭环 | 为证书、DNS、服务器、任务和审计补齐项目归属及越权测试 | 权限矩阵、接口越权测试 |
| P0-08 | [~] | 完善凭据和主密钥生命周期 | 已有凭据存储与测试,轮换、恢复、删除和失效证据不完整 | 补齐创建、轮换、恢复、删除、脱敏和不可恢复边界 | 安全测试、日志审查、恢复演练 |
| P0-09 | [x] | 强化 SSH 主机身份验证 | 已有指纹校验和安全测试,远程公钥自动部署需实机复核 | 完成指定服务器上的密码部署、公钥登录和指纹复核 | 指纹、授权文件、公钥登录日志 |
| P0-10 | [x] | 统一任务、部署和回滚事务模型 | 已有部署事务和回滚测试,跨任务状态和重试还需复审 | 将申请、部署、回滚、重试统一关联任务记录 | 事务测试、失败回滚证据 |
| P0-09 | [~] | 强化 SSH 主机身份验证 | 已有指纹校验和安全测试,人工确认、更新与远程公钥部署需逐项复核 | 完成指定服务器上的密码部署、公钥登录和指纹复核 | 指纹、授权文件、公钥登录日志 |
| P0-10 | [~] | 统一任务、部署和回滚事务模型 | 部署事务已有实现,不代表所有长操作、项目关联和八类状态已经实现 | 将申请、部署、回滚、重试统一关联任务记录 | 事务测试、失败回滚证据 |
| P0-11 | [!] | 建立生产验收门禁 | 现有自动化证据不能替代 DNS、HTTPS、ACME 和远程验收 | 固化准入清单、证据目录和阻塞规则 | 生产验收记录逐项复核 |
| P0-12 | [x] | 完成备份和恢复方案 | 已有备份恢复实现和 PostgreSQL 说明,完整实机闭环仍需复审 | 完成停服备份、篡改拒绝、恢复和失败回滚演练 | 隔离数据库恢复报告 |
| P0-12 | [~] | 完成备份和恢复方案 | 已有 CLI 备份恢复,自动备份、列表、下载、确认和审计仍需逐项核查 | 补齐完整备份能力并进行隔离恢复演练 | 隔离数据库恢复报告 |
## 四、P1 核心产品能力