【问题标题】:Flyway: How to remove a large migration script from migrationsFlyway:如何从迁移中删除大型迁移脚本
【发布时间】:2017-03-16 19:00:01
【问题描述】:

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

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

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

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

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

  1. 删除测试数据
  2. 从 schema_version 表中删除迁移

然后删除迁移脚本。然而这不起作用,Flyway 仍然抱怨删除的迁移脚本丢失。 是否存在不能在迁移中与 schema_version 表交互的限制?

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

【问题讨论】:

    标签: flyway


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-02-28
      • 2018-10-14
      • 2011-11-05
      • 2022-01-01
      • 2021-11-23
      • 2020-08-17
      • 2019-12-27
      • 2017-05-21
      • 2021-11-22
      相关资源
      最近更新 更多