4.6 KiB
4.6 KiB
249 Admin:部署统一搜索清除按钮版本到生产服务器
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#15 / Admin 生产部署
- 状态:已完成,待用户验收
- 日期:2026-08-15
- Gitea 工单:#249
背景与目标
生产 Admin 原来运行 7736ab7,尚未包含 #248 的列表搜索清除按钮。本任务把固定提交
d79e5c4 隔离构建并发布到 185.216.248.75,继续通过
https://buy.833729.com 提供服务。
最终方案
- 在 Windows 系统临时目录建立
d79e5c4detached worktree,与主工作区未提交的 Client 文件隔离。第一次验证命令误在仓库根目录执行,Go 在编译前即因找不到模块退出; 随后改到隔离工作树的admin/目录,使用固定 Go 1.23.0 完成 vet、全量构建、全量测试 和 Linux amd64 静态构建。 - 上传后核对本地、暂存和最终 release 的 SHA-256、文件大小和 ELF 类型;正式 release
继续链接
/opt/cmautobuy/config.yaml和/opt/cmautobuy/data,没有复制或输出凭据。 - 部署前确认生产仍运行
7736ab7,MySQL 8.4.8、schema v25,SYB 同步、AI 匹配、 档口入库码排队/回写均为 0。目标二进制先在不对公网开放的127.0.0.1:18081使用生产环境启动,数据库自检和登录页检查通过后才进入切换。 - 再次确认后台任务为 0,停止 systemd 后原子切换稳定二进制链接并启动。发布后核对 release 哈希、5 个清除入口模板标识、schema、后台任务、systemd、监听、Nginx、 本机和公网 HTTPS。
- 本次代码不包含 schema 变化,也不主动写业务数据,因此没有额外生成数据库备份。
前一 release
7736ab7同样支持 v25,发生启动或页面健康检查失败时可以只回切应用。 - 部署过程没有触发顺运宝同步、档口入库码匹配/回写、AI 匹配、采集、采购、下单或付款。
改了哪些
/opt/cmautobuy/releases/d79e5c4/:新增并启用目标 Admin release。/opt/cmautobuy/cmautobuy-admin:稳定链接从7736ab7原子切换到d79e5c4。docs/task/249-admin部署统一搜索清除按钮版本.md:新增本次部署归档。
前一 7736ab7 release 继续保留,可在不恢复数据库的情况下回切。服务器上传暂存文件和
预检日志已删除,本地 detached worktree 已移除。已校验的 Linux 二进制暂时保留在系统
临时目录 cmautobuy-deploy-249-20260815-175451/artifacts,不在仓库中且不含配置或数据。
验收结果
| 验收标准 | 结果 |
|---|---|
发布物只来自固定提交 d79e5c4,固定 Go 1.23.0 验证通过 |
通过 |
| 切换前 SYB、AI 和档口入库码活动任务均为 0 | 通过(两次核对) |
| 本地、上传暂存和最终 release 哈希一致 | 通过 |
systemd active/enabled,只监听 127.0.0.1:18080 |
通过 |
| schema 保持 v25,未执行数据库迁移或业务写入 | 通过 |
| 本机、公网页面及目标模板标识正常 | 通过 |
| 配置、密钥和业务数据保持,未触发真实业务动作 | 通过 |
发布结果:
- 目标二进制:28,012,696 字节,SHA-256
0c550bda3d6baf04a190877a2a4a22ad2c3ec55a7d6922dc43d8e9f25c05567d。 - 新服务 PID 为
31437,启动时间2026-08-15 17:58:09 CST;启动日志中的数据库 就绪标识存在,fatal、panic 和迁移错误均为 0。 - MySQL 服务端为 8.4.8,schema 为 v25;发布后的 SYB、AI 和档口入库码活动任务均为 0。
- 本机根路径 303、登录页 200;公网根路径 303、登录页 200;Nginx 配置检查通过。
- 发布物中蝦皮、PDD、采集采购、客户端和用户管理的 5 个清除链接标识全部存在。
测试
- 执行的命令:
- 隔离 worktree:
GOTOOLCHAIN=go1.23.0 go vet ./...、go build ./...、go test ./... -count=1 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w'- 上传前后
sha256sum、stat、file - 独立端口生产环境启动预检、生产运行态只读 SQL
readlink、systemctl、ss、nginx -t、journalctl、本机和公网curl- 在最终二进制中核对 5 个清除入口模板标识
- 隔离 worktree:
- 结果:固定 Go 1.23.0 验证、静态构建、启动预检、切换及全部发布后检查通过。
- 没验证到的部分:未使用生产账号登录后逐个点击 5 个清除入口;未触发真实同步、 AI 匹配、档口入库码匹配/回写、采集、采购、下单或付款;未实际执行应用回切。
相关提交
d79e5c4:本次生产目标代码基线。