重命名Flyway可重复迁移是否可以?

Pri*_*mre 5 database-migration flyway

我为我的项目设置了一堆可重复的迁移,以删除(并重新创建)一些经常修改的数据库视图。包结构如下所示:

src/main/resources
  |-db
    |-R__pets_amphibians_view.sql
    |-R__pets_birds_view.sql
    |-R__pets_mammals_view.sql
    |-R__pets_reptiles_view.sql
    |-...
    |-<versioned-migrations>
Run Code Online (Sandbox Code Playgroud)

现在,我想做的就是将R__pets_mammals_view.sql视图分成两个更具体的视图:eg R__pets_mammals_dogs_view.sqlR_pets_mammals_rodents_view.sql。这也将需要重命名/删除原始R_pets_mammals_view.sql文件。

我想知道的是我是否可以在不弄乱架构版本控制的情况下做到这一点(可能会杀死进程中的任何托管环境)?不幸的是,我在Flyway文档中找不到答案。

PS:我知道,一旦将版本化的迁移部署到本地环境以外的其他地方,重命名它不是一个好主意。但是,由于可以随意修改可重复的迁移(并且由于它们是最后执行的),所以我不确定在这种情况下它们是否真正“算在内”。

Ste*_*stl 5

从技术角度来看,您可以根据需要添加,删除和重命名可重复的迁移。对于删除的可重复迁移,Flyway不会做任何事情。这些迁移也将保留在schema_version表中。因此,即使删除了可重复的迁移,您仍然可以跟踪在其架构上执行了哪些可重复的迁移。

在您的示例中,您删除R__pets_mammals_view.sql并添加了两个其他视图,“哺乳动物”视图将仅保留在您的架构上,您可以通过版本化迁移(或手动)将其删除。