首页 / 升级与回滚
升级与回滚
升级(换镜像即升级)
# ① 升级前备份
docker exec mergepilot-postgres-1 pg_dump -U postgres -d mu -Fc -f /tmp/mu.backup
docker cp mergepilot-postgres-1:/tmp/mu.backup ./mu-$(date +%F).backup
# ② 改 compose 里 console 的 image digest 引用为新版本
# ③ 拉取并滚动
docker compose --env-file .env pull console
docker compose --env-file .env up -d
# ④ 验证
curl -s http://127.0.0.1:48500/api/health | grep version
schema 迁移在启动时自动、幂等、只前进执行 (历史全部为 additive 变更,rc.5→rc.15 实证零数据损失)。
回滚(换回旧镜像)
# 把 compose 的 console image 引用改回旧版本 digest 后
docker compose --env-file .env up -d
要点:
- schema 不自动降级——旧镜像对新列/新表无感知可正常运行; 若需彻底回到旧 schema,用升级前备份恢复(见下);
- 数据卷(pgdata/evidence/keystore)在回滚中一律不动;
- 会话在新旧镜像间语义一致,回滚不强制重登。
灾备恢复(从备份重建)
# 以同版本 compose 启动全新栈后:
docker exec -i mergepilot-postgres-1 pg_restore -U postgres -d mu --clean < mu-2026-10-06.backup
evidence/model-cache/keystore 卷按原目录回填即可(keystore 丢失会令 cchain=BLOCKED,重新 rotate 生成即可恢复 READY)。
版本策略
- 镜像以 不可变 digest 发布;compose 引用建议钉 digest 而非浮动 tag;
- 每个版本的 digest/SHA256/SBOM 见 下载与校验;
- 源码 tag 与镜像 digest 一一同源(tag 页可溯构建 commit)。