我当前的项目有一些用于将初始数据导入数据库的Flyway迁移。这些数据特别方便开发人员快速设置项目。生产数据通过某些批处理作业导入,并且具有更新的版本。
其中一些迁移非常大(约20MB),因此每次应用程序启动时,Flyway都需要一些时间来计算迁移的校验和。这也是集成测试的一个问题,因为它们也需要更长的时间。
我认为这种做法是对Flyway的滥用,我认为迁移工具应主要用于结构数据。
我想从我们的应用程序中删除这些文件,而是使用配置管理工具(例如Vagrant,Puppet,Chef)在开发人员环境中导入测试数据。但是,我不能仅从应用程序中删除迁移文件,因为Flyway会抱怨迁移已记录在数据库中,但在应用程序迁移中不存在。
我的第一个想法是创建一个具有高优先级版本号的新迁移
然后删除迁移脚本。然而,这不起作用,Flyway仍然抱怨删除了移除的迁移脚本。 是否存在您无法在迁移中与schema_version表进行交互的限制?
我还有其他选择吗?如果可能,我想使用Flyway而不是手动执行此操作。