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

71 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 198 Admin:部署店铺准入版本并清理非允许店铺 SYB 数据
- 类型:部署 / 数据维护
- 父级大工单:#14
- 所属 MVP / 版本:#15 / 顺运宝同步店铺准入生产上线
- 状态:已完成
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/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` 本次生产发布基线