Files
cmautobuy/docs/task/290-admin部署多个相同顺运宝明细逐件匹配修复到生产.md
2026-08-22 11:59:44 +08:00

3.7 KiB
Raw Permalink Blame History

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 执行重新匹配或真实档口入库码 回写;未实际执行应用回退或数据库恢复。

相关提交

  • 18ad85d fix: 兼容多个相同顺运宝明细逐件匹配 (#289)
  • a61d97b docs: 归档任务 #289(本次生产目标代码基线)