2017-08-14 53 views
4

我为我的项目设置了一堆可重复的迁移,以删除(并重新创建)一些经常修改的数据库视图。封装结构看起来是这样的:重命名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> 

现在,我想要做的就是向上分割R__pets_mammals_view.sql观点分成两个更具体的看法:例如R__pets_mammals_dogs_view.sqlR_pets_mammals_rodents_view.sql。这也需要重命名/删除原始文件R_pets_mammals_view.sql

我想知道的是我是否可以做到这一点,而不会搞乱我的模式版本(可能会杀死进程中的任何托管环境)?不幸的是,我无法在Flyway文档中找到答案。

个人编号:我知道将版本化的迁移重新命名为本地环境之外的任何东西后再重命名并不是一个好主意。但是,由于可重复的迁移可以随意修改(并且因为它们是最后执行的),所以我不确定它们是否在这种情况下实际“计数”。

回答

4

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

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

相关问题