【问题标题】:Is it OK to rename Flyway repeatable migrations?可以重命名 Flyway 可重复迁移吗?
【发布时间】:2018-01-22 02:49:34
【问题描述】:

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

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 文档中找不到这个问题的答案。

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

【问题讨论】:

    标签: database-migration flyway


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-05
      • 2018-08-28
      • 2020-05-13
      • 2017-08-13
      • 2020-11-15
      • 2017-11-26
      • 2016-09-12
      • 2017-11-14
      • 2018-07-29
      相关资源
      最近更新 更多