跳转到内容

迁移、种子与测试数据

核心表结构由核心包维护,业务表由应用维护,自有扩展维护自己的表与 schema 版本。应用升级通过迁移推进结构,不复制核心 migration 文件。

应用使用 Goravel 公开 migration 合同,在 bootstrap.Options.Migrations 注册。核心迁移先注册,应用迁移随后注册;重复 migration signature 会使启动失败。

商品样板将迁移放在业务模块旁,并在 application.Options() 中装配。迁移提交后保持已有签名和语义稳定,后续结构变化追加新迁移。

终端窗口
# 应用 server/
go run . artisan migrate

扩展 schema 还受扩展生命周期与 checkpoint 管理,不直接修改 checkpoint 表来跳过迁移。

db:seed 先运行核心种子,再运行应用种子。应用菜单参加首次授权事务;重跑不会撤销管理员后来的权限和菜单决定。

业务种子应幂等,只补充缺失默认数据。商品字典样板不会覆盖已经调整的值。

终端窗口
# 首次安装的开发数据库
go run . artisan db:seed

日常升级执行必要的前向迁移和回归,不将演示种子、freshreset 加入升级脚本。

测试使用专用数据库,连接不指向日常开发或业务数据库。核心测试与应用测试分别使用自己的测试库。

复用核心 testkit 时,MODU_TEST_DATABASE 必须满足名称限制:modu_*_test,或历史兼容名称 gorave_admin_test。运行前仍要核对实际连接配置。

后端验证包括 go build ./...go vet ./...go test ./...。涉及 HTTP、权限或扩展生命周期的变化,补充相应功能回归;数据初始化成功不能代替业务验证。