Admin:部署顺运宝高 offset 尾页兼容版本到生产 #303

Open
opened 2026-08-25 08:41:16 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:部署
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / 顺运宝同步稳定性
  • 阶段:生产发布
  • 依赖:#302
  • 状态:已完成,待用户验收

要解决什么

把已完成并归档的 #302 固定版本部署到生产 Admin,使顺运宝同步优先采用低 offset 的单日整批读取,并在明确耗尽只读网络重试后回退分页。

  • 待部署提交:5f544a1deb91fd4a333aafb1185d9e2465d17ede
  • 当前生产版本:f7c2ce3
  • 生产 schema:预期 v30
  • 数据库迁移:无

做什么 / 不做什么

做什么

  • 从固定 Git 提交创建隔离源码树,不打包工作区未提交文件。
  • 使用 Go 1.23.0 执行全量测试、构建、静态检查并交叉编译 Linux amd64 二进制。
  • 切换前检查生产 schema 和运行中同步、目录导入、AI 匹配、档口回写任务。
  • 对生产 MySQL 创建完整压缩备份并校验。
  • 上传到新的 release 目录,在独立端口完成预启动与健康检查。
  • 原子切换稳定软链接并重启 systemd;失败时自动回退 f7c2ce3。
  • 验证 systemd、监听端口、Nginx、公开登录页、schema 与后台活动计数。
  • 更新 #302 的部署状态并完成本工单记录、提交和归档。

不做什么

  • 不触发真实顺运宝同步,不执行顺运宝写操作。
  • 不修改生产配置、凭据、Nginx 规则或数据库结构。
  • 不打包 config.yaml、密钥、本地 data/ 或未提交的 Client 改动。
  • 不删除旧 release;保留 f7c2ce3 作为回退版本。

已确认的实现方案

  1. 用 git archive 5f544a1... 生成独立源码树。
  2. 在独立源码树的 admin/ 运行:
    $env:GOTOOLCHAIN = "go1.23.0"
    go test ./... -count=1
    go build ./...
    go vet ./...
    
  3. 交叉编译 linux/amd64、CGO_ENABLED=0 二进制,记录大小和 SHA-256。
  4. 检查生产稳定链接仍指向 f7c2ce3、schema v30,且四类后台活动计数为 0。
  5. 使用 mysqldump --single-transaction --no-tablespaces 生成权限 600 的 gzip 备份,并校验 gzip、表数和 SHA-256。
  6. 上传并安装到 /opt/cmautobuy/releases/5f544a1/,沿用稳定配置、数据和密钥。
  7. 在 127.0.0.1:18083 预启动,检查 /、/login、/syb 及启动日志。
  8. 再次确认无运行中后台任务后,原子切换 /opt/cmautobuy/cmautobuy-admin,重启并验证;任何关键检查失败立即切回旧版本。

预计修改文件:

  • docs/task/303-admin部署顺运宝高offset兼容版本到生产.md

验收标准

  • 隔离源码树精确对应提交 5f544a1deb91fd4a333aafb1185d9e2465d17ede。
  • Go 1.23.0 全量 test、build、vet 通过。
  • Linux amd64 二进制 SHA-256 已记录,服务器文件校验一致。
  • 切换前生产 schema v30 且无运行中后台任务。
  • MySQL 完整备份已生成并通过 gzip、表数及 SHA-256 校验。
  • 18083 预启动和本机 HTTP 检查通过,日志无 panic、fatal、迁移或 schema 失败。
  • 稳定软链接原子切换到 /opt/cmautobuy/releases/5f544a1/cmautobuy-admin。
  • systemd active/enabled,主进程执行新二进制,18080 正常监听。
  • Nginx 配置检查和公开 https://buy.833729.com/login 访问通过。
  • 切换后 schema v30 且四类后台活动计数仍为 0。
  • 旧版本 f7c2ce3 保留,可按稳定链接回退。
  • #302 已回填生产部署结果;本工单完成实施记录和本地归档。

怎么验证

本地 admin/:

$env:GOTOOLCHAIN = "go1.23.0"
go test ./... -count=1
go build ./...
go vet ./...

生产只做部署健康检查,不自动发起真实顺运宝同步。真实同步效果由用户后续在页面操作验收。

风险和回退

  • 风险:发布期间若存在运行中同步或写任务,重启可能中断任务;因此切换前后都检查后台活动并要求为 0。
  • 风险:新版本启动失败或健康检查异常;切换脚本必须立即恢复旧链接并重启旧版本。
  • 回退:把稳定链接原子切回 /opt/cmautobuy/releases/f7c2ce3/cmautobuy-admin 并重启 cmautobuy-admin;本任务无数据库迁移。

实施结果

  • 固定发布基线:5f544a1deb91fd4a333aafb1185d9e2465d17ede
  • 生产 release:/opt/cmautobuy/releases/5f544a1/cmautobuy-admin
  • 二进制:28,336,280 字节;SHA-256 276a1fc0e8a41d0defe42c1cbbab36e38924d20361552a46b864bb261c15bdde
  • 发布前备份:/opt/cmautobuy/backups/autobuy-before-303-20260825T004332Z-notablespaces.sql.gz
  • 备份校验:83,647,241 字节、0600、34 个建表段、SHA-256 0eb12310ad3d9ae3129de08950db252a4397e14303a6664ab352042db168d41c
  • 预检:18083 的根路径、登录页、SYB 受保护页分别返回 303/200/303。
  • 生产:systemd active/enabled,实际进程和稳定链接均指向 5f544a1;本机和公网 HTTP 均为 303/200/303;Nginx 检查通过。
  • 数据库:发布前后 schema v30,四类后台活动任务均为 0;没有执行迁移或主动业务写入。
  • 回退:保留 /opt/cmautobuy/releases/f7c2ce3/cmautobuy-admin。
  • 归档:docs/task/303-admin部署顺运宝高offset兼容版本到生产.md
  • 归档提交:fddc97c
  • 未验证:没有主动执行生产顺运宝真实同步、登录后页面视觉验收、实际二进制回退或备份恢复。
## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 / 顺运宝同步稳定性 - 阶段:生产发布 - 依赖:#302 - 状态:已完成,待用户验收 ## 要解决什么 把已完成并归档的 #302 固定版本部署到生产 Admin,使顺运宝同步优先采用低 offset 的单日整批读取,并在明确耗尽只读网络重试后回退分页。 - 待部署提交:`5f544a1deb91fd4a333aafb1185d9e2465d17ede` - 当前生产版本:`f7c2ce3` - 生产 schema:预期 v30 - 数据库迁移:无 ## 做什么 / 不做什么 ### 做什么 - 从固定 Git 提交创建隔离源码树,不打包工作区未提交文件。 - 使用 Go 1.23.0 执行全量测试、构建、静态检查并交叉编译 Linux amd64 二进制。 - 切换前检查生产 schema 和运行中同步、目录导入、AI 匹配、档口回写任务。 - 对生产 MySQL 创建完整压缩备份并校验。 - 上传到新的 release 目录,在独立端口完成预启动与健康检查。 - 原子切换稳定软链接并重启 systemd;失败时自动回退 `f7c2ce3`。 - 验证 systemd、监听端口、Nginx、公开登录页、schema 与后台活动计数。 - 更新 #302 的部署状态并完成本工单记录、提交和归档。 ### 不做什么 - 不触发真实顺运宝同步,不执行顺运宝写操作。 - 不修改生产配置、凭据、Nginx 规则或数据库结构。 - 不打包 `config.yaml`、密钥、本地 `data/` 或未提交的 Client 改动。 - 不删除旧 release;保留 `f7c2ce3` 作为回退版本。 ## 已确认的实现方案 1. 用 `git archive 5f544a1...` 生成独立源码树。 2. 在独立源码树的 `admin/` 运行: ```powershell $env:GOTOOLCHAIN = "go1.23.0" go test ./... -count=1 go build ./... go vet ./... ``` 3. 交叉编译 `linux/amd64`、`CGO_ENABLED=0` 二进制,记录大小和 SHA-256。 4. 检查生产稳定链接仍指向 `f7c2ce3`、schema v30,且四类后台活动计数为 0。 5. 使用 `mysqldump --single-transaction --no-tablespaces` 生成权限 600 的 gzip 备份,并校验 gzip、表数和 SHA-256。 6. 上传并安装到 `/opt/cmautobuy/releases/5f544a1/`,沿用稳定配置、数据和密钥。 7. 在 `127.0.0.1:18083` 预启动,检查 `/`、`/login`、`/syb` 及启动日志。 8. 再次确认无运行中后台任务后,原子切换 `/opt/cmautobuy/cmautobuy-admin`,重启并验证;任何关键检查失败立即切回旧版本。 预计修改文件: - `docs/task/303-admin部署顺运宝高offset兼容版本到生产.md` ## 验收标准 - [x] 隔离源码树精确对应提交 `5f544a1deb91fd4a333aafb1185d9e2465d17ede`。 - [x] Go 1.23.0 全量 test、build、vet 通过。 - [x] Linux amd64 二进制 SHA-256 已记录,服务器文件校验一致。 - [x] 切换前生产 schema v30 且无运行中后台任务。 - [x] MySQL 完整备份已生成并通过 gzip、表数及 SHA-256 校验。 - [x] 18083 预启动和本机 HTTP 检查通过,日志无 panic、fatal、迁移或 schema 失败。 - [x] 稳定软链接原子切换到 `/opt/cmautobuy/releases/5f544a1/cmautobuy-admin`。 - [x] systemd active/enabled,主进程执行新二进制,18080 正常监听。 - [x] Nginx 配置检查和公开 `https://buy.833729.com/login` 访问通过。 - [x] 切换后 schema v30 且四类后台活动计数仍为 0。 - [x] 旧版本 `f7c2ce3` 保留,可按稳定链接回退。 - [x] #302 已回填生产部署结果;本工单完成实施记录和本地归档。 ## 怎么验证 本地 `admin/`: ```powershell $env:GOTOOLCHAIN = "go1.23.0" go test ./... -count=1 go build ./... go vet ./... ``` 生产只做部署健康检查,不自动发起真实顺运宝同步。真实同步效果由用户后续在页面操作验收。 ## 风险和回退 - 风险:发布期间若存在运行中同步或写任务,重启可能中断任务;因此切换前后都检查后台活动并要求为 0。 - 风险:新版本启动失败或健康检查异常;切换脚本必须立即恢复旧链接并重启旧版本。 - 回退:把稳定链接原子切回 `/opt/cmautobuy/releases/f7c2ce3/cmautobuy-admin` 并重启 `cmautobuy-admin`;本任务无数据库迁移。 ## 实施结果 - 固定发布基线:`5f544a1deb91fd4a333aafb1185d9e2465d17ede` - 生产 release:`/opt/cmautobuy/releases/5f544a1/cmautobuy-admin` - 二进制:28,336,280 字节;SHA-256 `276a1fc0e8a41d0defe42c1cbbab36e38924d20361552a46b864bb261c15bdde` - 发布前备份:`/opt/cmautobuy/backups/autobuy-before-303-20260825T004332Z-notablespaces.sql.gz` - 备份校验:83,647,241 字节、0600、34 个建表段、SHA-256 `0eb12310ad3d9ae3129de08950db252a4397e14303a6664ab352042db168d41c` - 预检:18083 的根路径、登录页、SYB 受保护页分别返回 303/200/303。 - 生产:systemd active/enabled,实际进程和稳定链接均指向 `5f544a1`;本机和公网 HTTP 均为 303/200/303;Nginx 检查通过。 - 数据库:发布前后 schema v30,四类后台活动任务均为 0;没有执行迁移或主动业务写入。 - 回退:保留 `/opt/cmautobuy/releases/f7c2ce3/cmautobuy-admin`。 - 归档:`docs/task/303-admin部署顺运宝高offset兼容版本到生产.md` - 归档提交:`fddc97c` - 未验证:没有主动执行生产顺运宝真实同步、登录后页面视觉验收、实际二进制回退或备份恢复。
Author
Owner

#303 已完成部署并归档,等待用户验收。

  • 生产稳定链接与实际进程:/opt/cmautobuy/releases/5f544a1/cmautobuy-admin
  • systemd:active/enabled;Nginx 配置检查通过。
  • 本机及公网:根路径 303、登录页 200、SYB 受保护页 303。
  • MySQL:schema v30;发布前后四类后台活动任务均为 0。
  • 部署前完整备份已通过 gzip、权限、大小、SHA-256 和 34 个建表段检查。
  • 旧版 f7c2ce3 已保留;没有触发真实顺运宝同步或其他业务写入。
  • 归档提交:fddc97c
  • 归档:docs/task/303-admin部署顺运宝高offset兼容版本到生产.md

请在顺运宝数据页面手动执行目标日期范围同步,验收真实整批读取与入库结果。

#303 已完成部署并归档,等待用户验收。 - 生产稳定链接与实际进程:`/opt/cmautobuy/releases/5f544a1/cmautobuy-admin` - systemd:active/enabled;Nginx 配置检查通过。 - 本机及公网:根路径 303、登录页 200、SYB 受保护页 303。 - MySQL:schema v30;发布前后四类后台活动任务均为 0。 - 部署前完整备份已通过 gzip、权限、大小、SHA-256 和 34 个建表段检查。 - 旧版 `f7c2ce3` 已保留;没有触发真实顺运宝同步或其他业务写入。 - 归档提交:`fddc97c` - 归档:`docs/task/303-admin部署顺运宝高offset兼容版本到生产.md` 请在顺运宝数据页面手动执行目标日期范围同步,验收真实整批读取与入库结果。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/cmautobuy#303