3.6 KiB
3.6 KiB
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本次生产发布基线