Files
cmautobuy/docs/task/195-admin部署最新版本a4556b4.md
T
2026-08-12 18:30:09 +08:00

3.2 KiB
Raw Blame History

195 Admin:部署最新版本 a4556b4 到生产服务器

背景与目标

把包含 #192、#193 的最新已提交 Admin 基线 a4556b4 部署到生产服务器, 通过 https://buy.833729.com 提供服务。生产部署前运行版本为 6ea45b7。

最终方案

  • 主工作区存在其他未提交开发文件,因此从固定提交 a4556b4 建立 detached 隔离工作树,用固定 Go 1.23.0 验证并构建 Linux amd64 静态二进制。
  • 部署前分三次确认生产数据库没有 running 状态的顺运宝同步,避免服务重启 主动中断业务任务。
  • 使用生产业务账号完成单事务逻辑备份,校验 gzip、SHA-256 和权限。
  • 上传到独立 release,核对本地与远端二进制哈希,复用稳定配置和数据软链接。
  • systemd 停止后原子切换稳定执行链接;启动或本机登录页探测失败时自动回退 6ea45b7。
  • 本次没有数据库迁移,schema 保持 v13。

改了哪些文件

  • 本地忽略的构建产物:admin/.deploy/cmautobuy-admin-a4556b4。
  • 生产发布目录:/opt/cmautobuy/releases/a4556b4/。
  • 稳定执行链接:/opt/cmautobuy/cmautobuy-admin 已指向本次 release。
  • 生产备份:/opt/cmautobuy/backups/autobuy-before-195-20260812T102750Z.sql.gz。
  • 本归档文档:docs/task/195-admin部署最新版本a4556b4.md。

验收结果

验收项 结果
构建严格来自固定提交,不含未提交文件 通过:隔离 detached worktree
固定 Go 1.23.0 的 vet、test 和 Linux build 通过
切换前没有运行中的顺运宝同步 通过:三次检查均为 0
数据库备份权限 600 且 gzip 校验通过 通过:5,275,275 字节
二进制本地与远端 SHA-256 一致 通过:558a419d366b135bc86af937be1b4cf9ffee07ce00f1736fbbe3372441ec5c68
当前 release 和回退 release 正确 通过:当前 a4556b4,保留 6ea45b7
systemd、监听端口、schema 和日志正常 通过:active/enabled,127.0.0.1:18080,schema v13,错误计数 0
本机和公网健康检查 通过:根路径 303,登录页 200,公网登录页 200
未上传凭据,未执行真实同步、采集或采购 通过

测试

  • 执行命令:在提交 a4556b4 的隔离工作树使用 GOTOOLCHAIN=go1.23.0 执行 go vet ./...、go test ./... -count=1,再使用 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build;生产执行同步状态查询、 mysqldump、gzip -t、sha256sum、systemctl、readlink、ss、schema 查询、journalctl 和 HTTP/HTTPS 健康检查。
  • 结果:全部 Admin Go 包通过;生产启动日志显示数据库就绪和 Admin 正常启动; systemd active/enabled;本机和公网健康检查通过。
  • 未验证到的部分:没有使用生产账号登录后逐页进行人工功能验收;没有执行 真实顺运宝同步、采集或采购任务。

相关提交

  • a4556b4:本次生产部署代码基线。