Admin 的技术基线、启动配置和 schema migrations 全部固定为 SQLite,无法安全连接 MySQL 8.4,也没有 MySQL 版本表、连接池或启动自检。
github.com/go-sql-driver/mysql@v1.9.2
schema_migrations
admin/AGENTS.md
预计修改:admin/AGENTS.md、admin/go.mod、admin/go.sum、admin/config/、admin/repository/db*.go、admin/main.go、docs/admin/00~03/06 及测试。
admin/go.mod
admin/go.sum
admin/config/
admin/repository/db*.go
admin/main.go
docs/admin/00~03/06
GOTOOLCHAIN=go1.23.0 go build/test/vet ./...;在隔离 MySQL 8.4 数据库执行迁移两次并核对 schema。
GOTOOLCHAIN=go1.23.0 go build/test/vet ./...
新增驱动和基线错误会阻断启动;本工单不切换生产。回退提交即可恢复 SQLite 启动路径,现有 admin.db 不变。
实施前只读审计补充:线上 MySQL 8.4.8 已承载 cmhub,服务为 mysql84、监听 127.0.0.1:3307,数据目录 /mysql84_data,磁盘当前约 88%。cmautobuy 必须使用独立库和最小权限账号;#81 上线前增加容量与备份检查。MySQL 多条 DDL 不能用普通事务整体回滚,迁移方案已改为单条原子、可重放、最后记版本并严格自检。未读取或记录任何现有应用密码。
7e74bf2
05793e4
docs/task/78-mysql8数据库基础.md
工单保持开放等待用户验收;继续实施依赖工单 #79。
用户已明确验收通过。验收清单已回填,本工单关闭。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
Admin 的技术基线、启动配置和 schema migrations 全部固定为 SQLite,无法安全连接 MySQL 8.4,也没有 MySQL 版本表、连接池或启动自检。
做什么 / 不做什么
怎么做
github.com/go-sql-driver/mysql@v1.9.2(Go 1.21+,兼容项目 Go 1.23;MPL-2.0)。schema_migrations表和追加式版本;DDL 使用可重放语句逐条执行,全部完成并通过严格 schema 自检后才记录版本,以适应 MySQL DDL 隐式提交。所有表、索引、约束按当前 v8 最终结构建立。admin/AGENTS.md、上手、架构、数据模型和质量门禁,明确最终 MySQL-only 生产决策与迁移期边界。预计修改:
admin/AGENTS.md、admin/go.mod、admin/go.sum、admin/config/、admin/repository/db*.go、admin/main.go、docs/admin/00~03/06及测试。验收标准
怎么验证
GOTOOLCHAIN=go1.23.0 go build/test/vet ./...;在隔离 MySQL 8.4 数据库执行迁移两次并核对 schema。风险和回退
新增驱动和基线错误会阻断启动;本工单不切换生产。回退提交即可恢复 SQLite 启动路径,现有 admin.db 不变。
实施前只读审计补充:线上 MySQL 8.4.8 已承载 cmhub,服务为 mysql84、监听 127.0.0.1:3307,数据目录 /mysql84_data,磁盘当前约 88%。cmautobuy 必须使用独立库和最小权限账号;#81 上线前增加容量与备份检查。MySQL 多条 DDL 不能用普通事务整体回滚,迁移方案已改为单条原子、可重放、最后记版本并严格自检。未读取或记录任何现有应用密码。
完成记录
7e74bf205793e4docs/task/78-mysql8数据库基础.md工单保持开放等待用户验收;继续实施依赖工单 #79。
用户已明确验收通过。验收清单已回填,本工单关闭。