Files
cmautobuy/docs/task/198-部署店铺准入并清理非允许SYB数据.md
T
2026-08-13 09:00:10 +08:00

3.6 KiB
Raw Blame History

198 Admin:部署店铺准入版本并清理非允许店铺 SYB 数据

  • 类型:部署 / 数据维护
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / 顺运宝同步店铺准入生产上线
  • 状态:已完成
  • 日期:2026-08-13
  • Gitea 工单:#198

背景与目标

把包含 #196、#197 的最新 Admin 部署到生产,并按生产数据库中 12 个启用店铺, 删除 syb_orders 中不属于允许店铺的历史数据。清理必须有可恢复备份,并保证同步 记录和其他模块数据不被删除。

最终方案

  • 从固定提交 e8c5293 建立 detached 隔离工作树,固定 Go 1.23.0 验证并构建 Linux amd64 静态二进制;本地和远端 SHA-256 一致。
  • 发布前三次检查生产运行中顺运宝同步均为 0。
  • 使用生产业务账号做单事务逻辑备份,权限设为 600,并验证 gzip 和 SHA-256。
  • 上传独立 release e8c5293,复用稳定配置和 data 软链接,原子切换 systemd。
  • 因生产 schema 在发布前已是 v14,旧 release a4556b4 只支持 v13,另外构建并上传 8a8fff8 作为兼容 v14 的回退版本。
  • 只读预览确认启用店铺 12 个、待保留 3388 行、待删除 4938 行,待删行没有 task_syb_sources 引用。
  • 短暂停止 Admin 防止并发同步,重新核对预览仍为 4938 后,在事务中执行带 “启用店铺非空”保护的反向匹配删除;删除后再启动服务。
  • 清理仅修改 syb_orders;syb_sync_runs 和 task_syb_sources 数量保持不变。

改了哪些

  • /opt/cmautobuy/releases/e8c5293/:新增当前生产 release。
  • /opt/cmautobuy/releases/8a8fff8/:新增兼容 schema v14 的回退 release。
  • /opt/cmautobuy/cmautobuy-admin:切换至 e8c5293 二进制。
  • /opt/cmautobuy/backups/autobuy-before-198-20260813T005557Z.sql.gz:清理前完整备份。
  • 生产 syb_orders:删除 4938 行非允许店铺数据,保留 3388 行。
  • docs/task/198-部署店铺准入并清理非允许SYB数据.md:本执行归档。

验收结果

验收标准 结果
固定 Go 1.23.0 验证、Linux 构建及远端哈希一致 通过
发布前无运行中同步,备份权限 600 且 gzip 可读 通过
当前 release 为 e8c5293,schema v14,服务和健康检查正常 通过
启用店铺非空并记录删除预览 通过:12 个,保留 3388,删除 4938
只删除不匹配允许店铺的 syb_orders 通过:实际删除 4938
同步记录和其他模块数据未删除 通过:同步记录 8→8,任务来源 9→9
清理后不合规 SYB 行为 0 通过
未输出凭据、未触发外部业务操作 通过

测试

  • 执行的命令:固定 Go 1.23.0 的 go vet ./...、go test ./... -count=1; Linux amd64 静态构建与 SHA-256;生产同步状态、备份、事务前后计数、反查、 systemd、监听端口、日志、本机 HTTP 和公网 HTTPS 检查。
  • 结果:当前服务 active/enabled,监听 127.0.0.1:18080;本机根路径 303、登录页 200,公网登录页 200;invalid_syb_orders=0。
  • 没验证到的部分:未使用生产账号登录后人工查看店铺管理页和顺运宝列表; 未执行备份恢复演练;未发起真实顺运宝同步、采集或采购任务。

遗留问题

数据清理可通过本次完整备份恢复,但恢复会覆盖备份时点之后的生产变更,需停机并按 灾备流程执行。后续新增或启用店铺不会自动恢复本次已删除历史数据,需重新同步日期范围。

相关提交

  • e8c5293 本次生产发布基线