什么是基线迁移
在项目的整个生命周期中,可能会在许多迁移中创建和销毁许多数据库对象,这会留下漫长的迁移历史,需要应用这些迁移历史才能使新环境加速。
相反,您可能希望在应用所有这些迁移后添加一个表示数据库状态的单个累积迁移,而不会中断现有环境。
简单来说:
- 经历过一段时间的迭代开发后,你的迁移脚本有了 20 个版本,比如当前版本号为 V1.20
- 但是之前的 20 个版本迁移脚本对表结构、数据等变化都很大,你在一个全新的环境部署应用的话,这 20 个版本的迁移脚本都会从头开始执行一次,想要加快这个速度的话,就需要以当前的数据库结构以及初始化数据重新弄一个迁移脚本,全新部署的时候就跳过那 20 个脚本,而执行这个新的迁移脚本加快执行速度。
通过上面的解释后,基线迁移的作用就很明显了:就是在新环境的时候会跳过最新的基线迁移脚本之前的所有脚本。
基线迁移的用法
正常的迁移脚本命名如下图所示
而基线迁移仅仅是前缀(Prefix)变成了 B
比如 B5__my_database.sql
表示跳过 5 个迁移版本。
对于这个基线版本来说,如果你是已经有很多版本的时候,可能不太清楚如何定义基线版本号,最简单的一个方法就是:版本号保持最后一个迁移脚本相同的版本号。