docs: 记录开发服务器版本化迁移部署与回滚点

This commit is contained in:
weijuesen
2026-08-13 23:46:37 +08:00
parent a1f1e7baaa
commit f1ba6b35dc
3 changed files with 31 additions and 4 deletions
+6 -3
View File
@@ -818,7 +818,8 @@ MVP 沿用 IoTDB(现状);TDengine 作为生产规模化候选(先基准
- 开发服务器首轮启动暴露 `migrate.Close()` 会关闭底层数据库连接,已改为只关闭迁移 source,保留 `sql.DB` 供后续启动检查使用;
- `database.Init` 改为先执行版本化迁移并校验 `schema_migrations`,生产环境忽略 `ALLOW_DEV_AUTOMIGRATE`;开发环境仅显式开启时允许 AutoMigrate
- `config.Config` 增加 `APP_ENV``ALLOW_DEV_AUTOMIGRATE`;README 与物理机部署指南补充迁移说明和环境变量;
- 新增 sqlmock 测试,覆盖版本匹配、版本不匹配、空版本、dirty 状态和嵌入式迁移文件解析
- 新增 sqlmock 测试,覆盖版本匹配、版本不匹配、空版本、dirty 状态和嵌入式迁移文件解析
- 已在开发服务器 `100.83.103.1` 部署迁移版本。
### 设计思路与决策依据
@@ -831,10 +832,12 @@ MVP 沿用 IoTDB(现状);TDengine 作为生产规模化候选(先基准
- `go test ./...``go vet ./...``go build ./...` 全部通过;
- `internal/database` 迁移版本检查与嵌入式迁移解析单测通过;
- 本机无 Docker/PostgreSQL,未执行真实空库建库、旧库升级和 down 回滚演练;需在开发服务器或本地 PostgreSQL 环境完成,并严格按 AGENTS.md 先备份。
- 开发服务器:`schema_migrations``1|f``/api/v1/health` 200Web `5174` 200,后端日志显示 `版本化迁移完成 schemaVersion=1`
- 已执行旧库升级验证;真实空库建库和 down 回滚演练尚未执行。
### 回滚点
- 本任务前基线提交为 `20bea00`;回滚可还原 Task 2 提交并恢复 go.mod/go.sum
- 若迁移已应用到数据库,必须先恢复迁移前数据库备份,不能只回滚代码而保留不兼容 schema;
- 本次未连接开发服务器、未执行生产部署。
- 开发服务器回滚点:数据库备份 `/home/pan/backups/silk-20260813-234221.dump`,旧二进制 `/home/pan/silk/server-go/server-go-linux.bak-20260813-234221`
- 开发服务器无 git 仓库,回滚按旧二进制 + 数据库 dump 恢复,不再依赖服务器 git tag。