Git提交中是否需要包含DB变更和Migrations迁移脚本?
这两类文件都不应该移除,缺漏任意一类都会影响其他开发者的本地测试流程,具体问题如下:
缺漏Migrations迁移脚本的问题
- 其他开发者拉取代码后,执行项目标准化的迁移命令(比如Laravel的
php artisan migrate、Django的python manage.py migrate、Rails的rails db:migrate等)时,无法自动同步你新增的字段结构 - 若业务代码中已经引用了该新字段,执行对应逻辑时会直接抛出字段不存在的数据库报错,相关功能完全无法运行
- 没有手动对齐表结构意识的开发者会花费大量时间排查报错原因,甚至误判为本地环境故障
缺漏DB变更文件的问题
- 对于需要手动执行SQL更新、或者使用schema快照文件初始化数据库的场景,开发者无法找到对应的变更语句,无法手动对齐表结构
- 后续排查数据问题、或者需要在测试/生产环境手动执行变更时,没有可追溯的原始SQL依据,容易出现字段类型、长度、索引配置错误的问题
- 若项目CI/CD流程通过读取变更文件自动更新测试环境数据库,会直接导致测试环境表结构缺失,自动化测试全量失败
补充:如果DB变更文件已经在上一次提交中正常提交,本次仅需要提交新增的Migration脚本即可,不需要删除任意一类文件,保持完整的变更追溯链是团队数据库协作的基本要求。
内容的提问来源于stack exchange,提问作者cbln
相关产品推荐
相关产品推荐

