Admin:部署档口入库码 t=0 修复到生产 #279

Open
opened 2026-08-19 11:29:01 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:部署
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / Admin 生产部署
  • 阶段:把 #278 发布到生产

要解决什么

生产 Admin 仍运行 cb7719c,updateDetailCode 会把 t 发成毫秒时间戳。顺运宝按
Java Integer 解析后,2026-08-19 档口入库码回写全部失败。#278 已把 t 改回 "0",
并已通过验收,需要发布到 https://buy.833729.com。

做什么 / 不做什么

  • 做:从包含 #278 的固定提交隔离构建 Linux amd64 静态二进制,校验后发布到
    /opt/cmautobuy/releases/<hash>/,原子切换 /opt/cmautobuy/cmautobuy-admin。
  • 做:切换前确认 SYB 同步、AI 匹配、档口入库码排队/回写均为 0;用
    mysqldump --no-tablespaces 做逻辑备份;目标二进制先在 127.0.0.1:18081 预检。
  • 不做:不改配置、环境文件、Nginx、数据库 schema 或业务数据。
  • 不做:不触发顺运宝同步、档口入库码匹配/回写、AI、采集、采购、下单或付款。
  • 不做:不自动重放 19 号失败记录。发布后由操作员重新勾选回写。
  • 不做:不读取或输出凭据、Cookie、AI 密钥。

怎么做

  • 隔离 worktree,固定 GOTOOLCHAIN=go1.23.0 做 vet、全量测试和
    GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w'。
  • 上传后核对本地、暂存和最终 release 的 SHA-256。
  • 复用 release 外的 config.yaml 和 data 链接。
  • 预检通过且后台为空后停止 systemd,原子切换稳定链接并启动;失败则切回 cb7719c。
  • 本次无 schema 变化,cb7719c 可在不恢复数据库的情况下回切。

验收标准

  • 发布物来自固定提交,Go 1.23.0 测试、构建、vet 通过
  • 切换前 SYB、AI、档口入库码活动任务为 0
  • 逻辑备份 gzip 校验通过,权限 0600
  • 本地、上传和最终 release SHA-256 一致
  • 独立端口预检登录页 200,schema 仍为 v29
  • systemd active/enabled,只监听 127.0.0.1:18080
  • Nginx、本机及公网根路径/登录页/静态资源正常
  • 未修改配置,未触发真实业务写入
  • 上一 release cb7719c 保留,可切回

怎么验证

隔离 worktree 的 admin/:

$env:GOTOOLCHAIN="go1.23.0"
go test ./... -count=1
go build ./...
go vet ./...
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"
go build -trimpath -ldflags="-s -w" -o cmautobuy-admin .

服务器:SHA-256、mysqldump --no-tablespaces、gzip -t、独立端口预检、schema 与活动任务查询、systemctl、ss、nginx -t、journalctl、本机和公网 curl。

风险和回退

  • 风险:切换窗口内 Admin 短暂不可用;写码路径变化,若 t=0 被中间层缓存,理论上可能影响写码。当前生产毫秒 t 已被 Integer 拒绝,t=0 是 #234 已通过绑定的值。
  • 回退:启动或健康检查失败时,把 /opt/cmautobuy/cmautobuy-admin 切回 cb7719c 并启动。无 schema 变化,不必恢复数据库。
## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 / Admin 生产部署 - 阶段:把 #278 发布到生产 ## 要解决什么 生产 Admin 仍运行 `cb7719c`,`updateDetailCode` 会把 `t` 发成毫秒时间戳。顺运宝按 Java Integer 解析后,2026-08-19 档口入库码回写全部失败。#278 已把 `t` 改回 `"0"`, 并已通过验收,需要发布到 `https://buy.833729.com`。 ## 做什么 / 不做什么 - 做:从包含 #278 的固定提交隔离构建 Linux amd64 静态二进制,校验后发布到 `/opt/cmautobuy/releases/<hash>/`,原子切换 `/opt/cmautobuy/cmautobuy-admin`。 - 做:切换前确认 SYB 同步、AI 匹配、档口入库码排队/回写均为 0;用 `mysqldump --no-tablespaces` 做逻辑备份;目标二进制先在 `127.0.0.1:18081` 预检。 - 不做:不改配置、环境文件、Nginx、数据库 schema 或业务数据。 - 不做:不触发顺运宝同步、档口入库码匹配/回写、AI、采集、采购、下单或付款。 - 不做:不自动重放 19 号失败记录。发布后由操作员重新勾选回写。 - 不做:不读取或输出凭据、Cookie、AI 密钥。 ## 怎么做 - 隔离 worktree,固定 `GOTOOLCHAIN=go1.23.0` 做 vet、全量测试和 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w'`。 - 上传后核对本地、暂存和最终 release 的 SHA-256。 - 复用 release 外的 `config.yaml` 和 `data` 链接。 - 预检通过且后台为空后停止 systemd,原子切换稳定链接并启动;失败则切回 `cb7719c`。 - 本次无 schema 变化,`cb7719c` 可在不恢复数据库的情况下回切。 ## 验收标准 - [ ] 发布物来自固定提交,Go 1.23.0 测试、构建、vet 通过 - [ ] 切换前 SYB、AI、档口入库码活动任务为 0 - [ ] 逻辑备份 gzip 校验通过,权限 `0600` - [ ] 本地、上传和最终 release SHA-256 一致 - [ ] 独立端口预检登录页 200,schema 仍为 v29 - [ ] systemd active/enabled,只监听 `127.0.0.1:18080` - [ ] Nginx、本机及公网根路径/登录页/静态资源正常 - [ ] 未修改配置,未触发真实业务写入 - [ ] 上一 release `cb7719c` 保留,可切回 ## 怎么验证 隔离 worktree 的 `admin/`: ```powershell $env:GOTOOLCHAIN="go1.23.0" go test ./... -count=1 go build ./... go vet ./... $env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0" go build -trimpath -ldflags="-s -w" -o cmautobuy-admin . ``` 服务器:SHA-256、`mysqldump --no-tablespaces`、`gzip -t`、独立端口预检、schema 与活动任务查询、`systemctl`、`ss`、`nginx -t`、`journalctl`、本机和公网 `curl`。 ## 风险和回退 - 风险:切换窗口内 Admin 短暂不可用;写码路径变化,若 `t=0` 被中间层缓存,理论上可能影响写码。当前生产毫秒 `t` 已被 Integer 拒绝,`t=0` 是 #234 已通过绑定的值。 - 回退:启动或健康检查失败时,把 `/opt/cmautobuy/cmautobuy-admin` 切回 `cb7719c` 并启动。无 schema 变化,不必恢复数据库。
Author
Owner

生产目标提交固定为 1cf0995(含 #278 实现 417cd73 与归档)。开始隔离构建。

生产目标提交固定为 `1cf0995`(含 #278 实现 `417cd73` 与归档)。开始隔离构建。
Author
Owner

生产已切换到 1cf0995。

  • 二进制 SHA-256 5567bf953ee39dec27727d96ff94a8fd92955816fe38fb732ae99516009cbd85
  • 稳定链接 /opt/cmautobuy/releases/1cf0995/cmautobuy-admin
  • PID 18568,启动 2026-08-19 11:35:02 CST
  • schema v29;SYB/AI/档口入库码活动任务均为 0
  • 本机与公网登录页 200,根路径 303
  • 上一 release cb7719c 保留可切回
  • 未自动重放 19 号失败记录,需操作员重新勾选回写
生产已切换到 `1cf0995`。 - 二进制 SHA-256 `5567bf953ee39dec27727d96ff94a8fd92955816fe38fb732ae99516009cbd85` - 稳定链接 `/opt/cmautobuy/releases/1cf0995/cmautobuy-admin` - PID `18568`,启动 `2026-08-19 11:35:02 CST` - schema v29;SYB/AI/档口入库码活动任务均为 0 - 本机与公网登录页 200,根路径 303 - 上一 release `cb7719c` 保留可切回 - 未自动重放 19 号失败记录,需操作员重新勾选回写
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#279