当前个人开发阶段,运行中的本机 Docker MySQL 是 Admin 的唯一业务事实源。
internal/infra/database是 Go 的连接、事务和错误处理适配层,不是数据库实例。- 仓库不包含
database/目录、seed、migration、baseline 或数据库维护 CLI。 - Docker Compose 只负责提供 MySQL;应用启动不执行初始化或迁移。
- 用户自己的 Navicat/SQL 导出必须放在仓库外,不能被代码、Docker 或启动脚本读取。
数据库变更由 work-ai 在当前本机 Docker 的 admin 数据库执行:
- 只读确认 Compose 项目、MySQL 容器、主机边界和数据库名;拒绝远程或不明确目标。
- 读取目标表、字段、索引和数据,确认不涉及未授权业务事实。
- 执行最小 SQL;DDL 无法事务化时逐条执行并立即检查结果。
- 使用
SHOW CREATE TABLE、SHOW INDEX和精确SELECT读回验证。 - 运行受影响模块的短测试并记录结果。
禁止把密码或完整 DSN 写入终端输出、SQL、日志或 Git。不得删除业务表、字段、索引 或数据;不得为新模块重新创建 migration 文件。
只有在进入多人协作、部署交付或需要新机器空库恢复时,才重新批准数据库基线、迁移、 备份和恢复方案。该方案必须单独设计和验收,不能把个人开发阶段的无备份模式带入生产。