Flyway:如何从迁移中删除大型迁移脚本

时间:2016-11-03 08:59:28

标签: flyway

我当前的项目有一些用于将初始数据导入数据库的Flyway迁移。这些数据特别方便开发人员快速设置项目。生产数据通过某些批处理作业导入,并且具有更新的版本。

其中一些迁移非常大(约20MB),因此每次应用程序启动时,Flyway都需要一些时间来计算迁移的校验和。这也是集成测试的一个问题,因为它们也需要更长的时间。

我认为这种做法是对Flyway的滥用,我认为迁移工具应主要用于结构数据。

我想从我们的应用程序中删除这些文件,而是使用配置管理工具(例如Vagrant,Puppet,Chef)在开发人员环境中导入测试数据。但是,我不能仅从应用程序中删除迁移文件,因为Flyway会抱怨迁移已记录在数据库中,但在应用程序迁移中不存在。

我的第一个想法是创建一个具有高优先级版本号的新迁移

  1. 删除测试数据
  2. 从schema_version表中删除迁移
  3. 然后删除迁移脚本。然而,这不起作用,Flyway仍然抱怨删除了移除的迁移脚本。 是否存在您无法在迁移中与schema_version表进行交互的限制?

    我还有其他选择吗?如果可能,我想使用Flyway而不是手动执行此操作。

1 个答案:

答案 0 :(得分:2)

Repair是您最好的选择。清空这些数据迁移并运行repair命令以根据空文件重新计算校验和。