# 285 Admin:部署 AI 规格候选上限放大至生产 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#199 / Admin AI 规格批量匹配 - 状态:已完成,待用户验收 - 日期:2026-08-21 - Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/285 ## 背景与目标 将 #284 的单条 AI 规格匹配候选上限从 24 条放大到 100 条的功能发布到生产。生产原本 运行 `9c22ec6`,本次目标代码基线为 `1675c8a`。 ## 最终方案 - 从固定提交 `1675c8a` 构建 Linux amd64 静态二进制;本地、上传和最终稳定链接的 SHA-256 均为 `34189c4e9f098f2a5133f121b91a3215c4872ca8b2a3c64e79c5b8cdd4dbc123`。 - 切换前确认 schema 为 v29,SYB、目录导入和 AI 匹配活动任务均为 0;使用 `mysqldump --no-defaults --no-tablespaces` 创建逻辑备份并通过 gzip 校验。 - 新二进制先在 `127.0.0.1:18081` 预检,根路径为 303、登录页为 200;正式切换后最多 等待 15 秒,确认登录页已经监听后再执行健康检查。 - 发布到 `/opt/cmautobuy/releases/1675c8a/`,复用 release 外的 `config.yaml` 和 `data` 链接,原子切换 `/opt/cmautobuy/cmautobuy-admin`;上一 release `9c22ec6` 保留可回退。 - 没有修改配置、环境文件、密钥、schema 或业务数据;没有发起真实 AI 匹配、创建映射或 采购任务,也没有触发 SYB、采集、采购、下单或付款。 ## 改了哪些 - `/opt/cmautobuy/releases/1675c8a/cmautobuy-admin`:新增并启用生产二进制。 - `/opt/cmautobuy/cmautobuy-admin`:稳定链接从 `9c22ec6` 原子切换到 `1675c8a`。 - `/opt/cmautobuy/backups/autobuy-before-285-20260821T021812Z-notablespaces.sql.gz`:部署前 逻辑备份,86,234,453 字节,SHA-256 为 `f011f4320dbcc47299c171e655e2a1f81222afbef0aa51ff0683b8dc29feb581`,权限 0600。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 发布物来自固定提交,构建、上传和安装 SHA-256 一致 | 通过 | | 切换前后台作业为空,逻辑备份可通过 gzip 校验 | 通过 | | 独立端口预检根路径为 303、登录页为 200 | 通过 | | systemd active/enabled,稳定链接指向新 release | 通过 | | Nginx、本机和公网 HTTPS 根路径、登录页正常 | 通过 | | 未修改配置、密钥、schema 或业务数据,未触发真实业务写入 | 通过 | | 上一 release `9c22ec6` 保留,可切回 | 通过 | ## 测试 - 执行的命令:在 `admin/` 以 Go 1.23.0 执行 `go test ./... -count=1`、`go build ./...`、 `go vet ./...`;以 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0` 构建发布物。服务器执行 SHA-256、`mysqldump --no-defaults --no-tablespaces`、`gzip -t`、独立端口预检、schema 与 活动任务查询、systemd、端口监听和 `nginx -t`;本机执行公网 HTTPS 检查。 - 结果:服务运行 `1675c8a`,schema 为 v29;本机和公网根路径均为 303、登录页均为 200; 启动后没有 fatal、panic 或迁移失败日志。 - **没验证到的部分**:未使用真实 GPT-5.5 对 100 个候选执行端到端匹配;未发起真实 AI 匹配、创建映射、采购任务或其他业务写入;未实际执行回退或恢复备份。 ## 相关提交 - `f83f15c` feat: 放大 AI 规格候选上限 (#284) - `1675c8a` docs: 归档任务 #284(本次生产目标代码基线)