3.7 KiB
3.7 KiB
290 Admin:部署多个相同顺运宝明细逐件匹配修复到生产
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#224 / 档口入库码回写 MVP
- 状态:已完成,待用户验收
- 日期:2026-08-22
- Gitea 工单:#290
背景与目标
#289 已修复两个相同顺运宝商品明细对应两个单件档口入库码时被误判为候选重复的问题。
生产此前运行 add296c,本任务将固定提交 a61d97b 发布到生产,使后续人工重新匹配可使用
新的逐件确定性规划。
最终方案
- 从固定提交
a61d97b的隔离工作树构建 Linux amd64 静态二进制;本地、上传、release 和稳定链接的 SHA-256 均为09b3ec2d7c3eb6d77cb437d71f52e38aa68acf0d18e490e0459708f7fdff0807。 - 切换前确认 schema 为 v29,SYB 同步、目录导入、AI 匹配和档口入库码后台任务均为 0。
唯一
claimed采购任务cg26自 2026-08-13 起未更新,对应 Client 最后上线于 2026-08-19,判定为遗留状态,不属于当前执行。 - 使用
mysqldump --no-defaults --no-tablespaces创建逻辑备份,验证 gzip、文件权限、 大小和建表段。 - 目标二进制先在
127.0.0.1:18081预检,再发布到/opt/cmautobuy/releases/a61d97b/,复用 release 外的配置和数据链接,原子切换稳定 二进制链接并重启 systemd。 - 正式服务最多等待 15 秒;最终验证 systemd、监听、Nginx、本机和公网 HTTPS。
上一 release
add296c保留,可直接切回。 - 没有修改 schema、配置、AI 密钥或业务数据;未执行真实重新匹配、顺运宝新增/写码、 采集、采购、下单或付款。
改了哪些
/opt/cmautobuy/releases/a61d97b/cmautobuy-admin:新增并启用生产二进制, 28,164,248 字节,权限 0750,属主cmautobuy:cmautobuy。/opt/cmautobuy/cmautobuy-admin:稳定链接从add296c原子切换到a61d97b。/opt/cmautobuy/backups/autobuy-before-290-20260822T035529Z-notablespaces.sql.gz: 部署前逻辑备份,83,495,133 字节、权限 0600、32 个建表段,SHA-256 为233a67b9a77f397fc708302e736c5142d6f225461eb456bbb34b3dbb5db461ce。
验收结果
| 验收标准 | 结果 |
|---|---|
| 发布物来自固定提交,本地、上传和安装 SHA-256 一致 | 通过 |
| 切换前后台任务为空,逻辑备份通过 gzip 校验且权限为 0600 | 通过 |
| 独立端口预检、systemd、监听和 Nginx 正常 | 通过 |
| 本机和公网 HTTPS 根路径、登录页及静态资源正常 | 通过 |
| schema 和配置保持不变,未触发真实业务写入 | 通过 |
上一 release add296c 保留,可快速回退 |
通过 |
测试
- 执行的命令:在隔离工作树的
admin/以 Go 1.23.0 执行go test ./... -count=1、go build ./...、go vet ./...,再以GOOS=linux GOARCH=amd64 CGO_ENABLED=0构建发布物;服务器执行发布物 SHA-256、mysqldump、gzip -t、schema 与活动任务查询、独立端口预检、systemctl、ss、nginx -t和日志检查;本机执行公网 HTTPS 检查。 - 结果:生产进程实际执行
a61d97b;schema 为 v29;systemd active/enabled;本机根路径 和登录页为 303/200;公网根路径、登录页和app.js为 303/200/200;启动日志没有 fatal、panic 或迁移失败;发布后四类后台任务仍为 0。 - 没验证到的部分:未用生产样本
260820SS6E61GG执行重新匹配或真实档口入库码 回写;未实际执行应用回退或数据库恢复。
相关提交
18ad85dfix: 兼容多个相同顺运宝明细逐件匹配 (#289)a61d97bdocs: 归档任务 #289(本次生产目标代码基线)