把包含 #245、#246 的固定提交 7736ab7 构建为 Linux amd64 发布物,部署到 185.216.248.75,通过 https://buy.833729.com 提供服务,并确认生产 MySQL 已存在的 schema v25 与目标二进制一致。
7736ab7
185.216.248.75
https://buy.833729.com
部署预检确认:生产数据库已经在 2026-08-15T08:53:04Z 记录 v25,新增字段、索引和约束均已存在,但当时仍运行只支持 v24 的旧二进制 17c2d45。本次部署同时消除应用与数据库版本不一致的风险。
2026-08-15T08:53:04Z
17c2d45
autobuy
127.0.0.1:18081
mysqldump --no-tablespaces --single-transaction
/opt/cmautobuy/releases/7736ab7/
/opt/cmautobuy/cmautobuy-admin
apply_batch_id
apply_queued_at
idx_inner_code_apply_batch
queued
回退边界:生产库在切换前已是 v25,本次备份也是 v25;旧 17c2d45 只支持 v24,不能单独回切。发生故障时优先修复前进;只有确认没有需要保留的新业务写入且具备匹配的 v24 备份时,才能同步恢复数据库并切回旧 release。
127.0.0.1:18080
在隔离 worktree 的 admin/ 执行:
admin/
$env:GOTOOLCHAIN='go1.23.0' go vet ./... go build ./... go test ./... -count=1
服务器执行只读状态查询、备份校验、独立端口启动预检、systemctl、ss、nginx -t、journalctl、MySQL schema 查询以及本机/公网 curl。
systemctl
ss
nginx -t
journalctl
curl
applying
数据库不再重复执行“v24→v25”动作,只由新二进制启动自检现有 v25。部署前仍重新生成 v25 完整备份。
旧 release 不再是可直接启动的应用回退目标。先在不暴露公网的 127.0.0.1:18081 对目标二进制执行生产环境启动预检,确认可连接现有 v25 后才切换;切换后若异常只修复前进,不用旧 v24 release 覆盖启动,也不覆盖恢复已有新数据。
该变化是生产现状导致的安全收敛,不改变目标提交和功能范围。
a6bc35265c57942a5ffc54e7a547ca129b14f439ce1bf494c4d06eb10162cef1
go vet ./...
go build ./...
go test ./... -count=1
https://buy.833729.com/login
/opt/cmautobuy/backups/autobuy-before-247-20260815T093211Z-v25-notablespaces.sql.gz
0600
1f0b763a4c50cffd0bfec64ea76026c6da9922f23751632a2e8870ab7532a891
docs/task/247-admin部署档口入库码后台回写版本.md
e55e2b59caa39382bf261d1ee697b2fe4b37e1f6
回退说明:原 release 17c2d45 仅支持 schema v24,不能在当前 v25 上单独重启;生产故障应优先修复前进。只有确认没有需要保留的新业务数据并具备匹配的 v24 备份时,才允许数据库与旧 release 同步恢复。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
把包含 #245、#246 的固定提交
7736ab7构建为 Linux amd64 发布物,部署到185.216.248.75,通过https://buy.833729.com提供服务,并确认生产 MySQL 已存在的 schema v25 与目标二进制一致。部署预检确认:生产数据库已经在
2026-08-15T08:53:04Z记录 v25,新增字段、索引和约束均已存在,但当时仍运行只支持 v24 的旧二进制17c2d45。本次部署同时消除应用与数据库版本不一致的风险。做什么 / 不做什么
7736ab7的隔离 worktree 构建,不包含主工作区未提交文件。autobuy数据库,校验权限、gzip、建表段和 SHA-256。127.0.0.1:18081的隔离端口使用生产环境启动目标二进制,确认现有 v25 自检通过后再切换。已确认的实现方案
7736ab7完成固定 Go 1.23.0 验证和 Linux amd64 构建,记录 SHA-256。mysqldump --no-tablespaces --single-transaction,压缩并校验。/opt/cmautobuy/releases/7736ab7/并建立稳定配置与数据链接。/opt/cmautobuy/cmautobuy-admin,启动并检查就绪日志。apply_batch_id、apply_queued_at、idx_inner_code_apply_batch和含queued的状态约束。回退边界:生产库在切换前已是 v25,本次备份也是 v25;旧
17c2d45只支持 v24,不能单独回切。发生故障时优先修复前进;只有确认没有需要保留的新业务写入且具备匹配的 v24 备份时,才能同步恢复数据库并切回旧 release。验收标准
7736ab7,固定 Go 1.23.0 验证通过。127.0.0.1:18080。验证方式
在隔离 worktree 的
admin/执行:服务器执行只读状态查询、备份校验、独立端口启动预检、
systemctl、ss、nginx -t、journalctl、MySQL schema 查询以及本机/公网curl。风险和回退
生产预检发现(2026-08-15 17:28 UTC+8)
17c2d45,systemd active/enabled,监听127.0.0.1:18080。2026-08-15T08:53:04Z记录 schema v25;实际已有apply_batch_id、apply_queued_at、idx_inner_code_apply_batch,状态约束包含queued,确认就是 #246 的迁移。applying均为 0,最近两小时没有迁移失败、fatal 或 panic。17c2d45一旦重启将因只支持 v24 而拒绝启动。实施方案调整
数据库不再重复执行“v24→v25”动作,只由新二进制启动自检现有 v25。部署前仍重新生成 v25 完整备份。
旧 release 不再是可直接启动的应用回退目标。先在不暴露公网的
127.0.0.1:18081对目标二进制执行生产环境启动预检,确认可连接现有 v25 后才切换;切换后若异常只修复前进,不用旧 v24 release 覆盖启动,也不覆盖恢复已有新数据。该变化是生产现状导致的安全收敛,不改变目标提交和功能范围。
实施完成,待用户验收
7736ab7;发布物 SHA-256:a6bc35265c57942a5ffc54e7a547ca129b14f439ce1bf494c4d06eb10162cef1。go vet ./...、go build ./...、go test ./... -count=1全部通过。127.0.0.1:18081完成生产环境启动自检,再原子切换到127.0.0.1:18080。https://buy.833729.com/login均返回 200,最新静态资源返回 200。/opt/cmautobuy/backups/autobuy-before-247-20260815T093211Z-v25-notablespaces.sql.gz,权限0600,gzip 和建表段校验通过,SHA-256:1f0b763a4c50cffd0bfec64ea76026c6da9922f23751632a2e8870ab7532a891。docs/task/247-admin部署档口入库码后台回写版本.mde55e2b59caa39382bf261d1ee697b2fe4b37e1f6回退说明:原 release
17c2d45仅支持 schema v24,不能在当前 v25 上单独重启;生产故障应优先修复前进。只有确认没有需要保留的新业务数据并具备匹配的 v24 备份时,才允许数据库与旧 release 同步恢复。