Admin:部署档口逐件回写与原始 SKU 匹配版本 #269

Open
opened 2026-08-18 15:29:15 +08:00 by ila · 2 comments
Owner

基本信息

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

要解决什么

把 #250 多件档口入库码逐件回写和 #259 原始 SKU 确定性匹配发布到生产服务器,继续通过 https://buy.833729.com 提供服务,并安全执行 MySQL v27、v28、v29 追加迁移。最终生产目标提交为 7175af5。

做什么 / 不做什么

  • 做:隔离构建固定提交,执行 Go 1.23.0 全量测试、build、vet 和 Linux amd64 静态构建。
  • 做:切换前检查生产后台任务,备份 MySQL,校验压缩备份和发布物哈希。
  • 做:预检目标二进制后原子切换 release,验证 systemd、schema v29、Nginx、本机及公网健康状态。
  • 不做:不修改生产配置或密钥,不导入 Excel,不触发同步、AI 匹配、档口匹配/回写、采集、采购或下单。

怎么做

  • 从固定提交 7175af5 创建临时 detached worktree,避免主工作区未提交文件进入发布物。
  • 使用 GOTOOLCHAIN=go1.23.0 验证并交叉编译 Linux amd64 二进制。
  • 只读检查当前 release、MySQL schema 和运行中任务;有活动后台任务则停止切换。
  • 使用 mysqldump --single-transaction --no-tablespaces 创建部署前备份并执行 gzip -t。
  • 上传到新 release,复用 release 外的配置和数据;在独立本机端口完成迁移和启动预检。
  • 再次确认空闲后原子切换稳定链接;发布后检查服务、schema、日志及公网入口。

验收标准

  • 发布物只来自固定提交 7175af5,Go 1.23.0 测试、build、vet 通过。
  • 部署前后台任务空闲,数据库备份完整且发布物上传前后哈希一致。
  • MySQL v29 迁移成功,source_sku_raw 为 utf8mb4_bin。
  • systemd active/enabled,只监听既有本机端口,Nginx 配置通过。
  • 本机和公网登录页正常,新二进制包含 #250、#259 对应标识。
  • 未修改配置/密钥,未触发任何真实业务动作。

怎么验证

固定 Go 1.23.0 执行全量测试、build、vet;服务器验证备份、哈希、独立端口启动、systemd、schema、日志、Nginx、本机及公网 HTTP。

风险和回退

生产数据库已升级到 v29,旧 release d79e5c4 不能单独回切。若必须恢复旧程序,需要同时恢复部署前备份,该操作会覆盖备份后的数据。

## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 / Admin 生产部署 - 阶段:发布 #250、#259 ## 要解决什么 把 #250 多件档口入库码逐件回写和 #259 原始 SKU 确定性匹配发布到生产服务器,继续通过 `https://buy.833729.com` 提供服务,并安全执行 MySQL v27、v28、v29 追加迁移。最终生产目标提交为 `7175af5`。 ## 做什么 / 不做什么 - 做:隔离构建固定提交,执行 Go 1.23.0 全量测试、build、vet 和 Linux amd64 静态构建。 - 做:切换前检查生产后台任务,备份 MySQL,校验压缩备份和发布物哈希。 - 做:预检目标二进制后原子切换 release,验证 systemd、schema v29、Nginx、本机及公网健康状态。 - 不做:不修改生产配置或密钥,不导入 Excel,不触发同步、AI 匹配、档口匹配/回写、采集、采购或下单。 ## 怎么做 - 从固定提交 `7175af5` 创建临时 detached worktree,避免主工作区未提交文件进入发布物。 - 使用 `GOTOOLCHAIN=go1.23.0` 验证并交叉编译 Linux amd64 二进制。 - 只读检查当前 release、MySQL schema 和运行中任务;有活动后台任务则停止切换。 - 使用 `mysqldump --single-transaction --no-tablespaces` 创建部署前备份并执行 `gzip -t`。 - 上传到新 release,复用 release 外的配置和数据;在独立本机端口完成迁移和启动预检。 - 再次确认空闲后原子切换稳定链接;发布后检查服务、schema、日志及公网入口。 ## 验收标准 - [x] 发布物只来自固定提交 `7175af5`,Go 1.23.0 测试、build、vet 通过。 - [x] 部署前后台任务空闲,数据库备份完整且发布物上传前后哈希一致。 - [x] MySQL v29 迁移成功,`source_sku_raw` 为 `utf8mb4_bin`。 - [x] systemd active/enabled,只监听既有本机端口,Nginx 配置通过。 - [x] 本机和公网登录页正常,新二进制包含 #250、#259 对应标识。 - [x] 未修改配置/密钥,未触发任何真实业务动作。 ## 怎么验证 固定 Go 1.23.0 执行全量测试、build、vet;服务器验证备份、哈希、独立端口启动、systemd、schema、日志、Nginx、本机及公网 HTTP。 ## 风险和回退 生产数据库已升级到 v29,旧 release `d79e5c4` 不能单独回切。若必须恢复旧程序,需要同时恢复部署前备份,该操作会覆盖备份后的数据。
Author
Owner

??????,?????????????????? v28 ? source_sku_raw ????????????;?????? active??? #259 ?? v29 ??????????????????????????????????

??????,?????????????????? v28 ? source_sku_raw ????????????;?????? active??? #259 ?? v29 ??????????????????????????????????
ila changed title from Admin:???????????SKU???? to Admin:部署档口逐件回写与原始 SKU 匹配版本 2026-08-18 15:42:55 +08:00
Author
Owner

部署完成,状态:待验收。

  • 生产 release:/opt/cmautobuy/releases/7175af5/cmautobuy-admin
  • 稳定链接已从 d79e5c4 切换到 7175af5
  • schema:v29;systemd active/enabled;本机登录页 200;公网登录页 200;Nginx 检查通过
  • 发布物 SHA-256:c14b1a92736d7e83459038b1957b835bd8d12a1108289e5788ca3f66c6468ac6
  • 部署前备份:/opt/cmautobuy/backups/autobuy-before-269-20260818T073254Z.sql.gz,权限 0600,gzip -t 通过
  • 发布后 SYB、AI、档口入库码活动任务均为 0;未触发任何真实业务动作
  • 归档:docs/task/269-admin部署档口逐件回写与原始SKU匹配版本.md
  • 归档提交:b538370
部署完成,状态:待验收。 - 生产 release:`/opt/cmautobuy/releases/7175af5/cmautobuy-admin` - 稳定链接已从 `d79e5c4` 切换到 `7175af5` - schema:v29;systemd active/enabled;本机登录页 200;公网登录页 200;Nginx 检查通过 - 发布物 SHA-256:`c14b1a92736d7e83459038b1957b835bd8d12a1108289e5788ca3f66c6468ac6` - 部署前备份:`/opt/cmautobuy/backups/autobuy-before-269-20260818T073254Z.sql.gz`,权限 0600,`gzip -t` 通过 - 发布后 SYB、AI、档口入库码活动任务均为 0;未触发任何真实业务动作 - 归档:`docs/task/269-admin部署档口逐件回写与原始SKU匹配版本.md` - 归档提交:`b538370`
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#269