重命名 Flyway 可重复迁移是否可以?
Is it OK to rename Flyway repeatable migrations?
我已经为我的项目设置了一堆可重复的迁移,以删除(并重新创建)一些经常修改的数据库视图。包结构如下所示:
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.sql
和 R_pets_mammals_rodents_view.sql
,分别。这也需要 renaming/deleting 原始 R_pets_mammals_view.sql
文件。
我想知道我是否可以在不弄乱我的架构版本控制的情况下执行此操作(可能会终止该过程中的任何托管环境)?不幸的是,我在 Flyway 文档中找不到这个问题的答案。
P.S.: 我知道,一旦版本化迁移部署到本地环境以外的任何地方,重命名版本化迁移并不是一个好主意。但是,由于可以随意修改可重复迁移(并且因为它们是最后执行的),所以我不确定它们是否真的 "count" 在这种情况下。
从技术角度来看,您可以根据需要添加、删除和重命名 repeatable 迁移。 Flyway 不会对删除的 repeatable 迁移做任何事情。这些迁移也将保留在 schema_version
table 中。因此,您仍然可以跟踪在您的模式上执行了哪些 repeatable 迁移,即使它们已被删除。
在您的示例中,您删除了 R__pets_mammals_view.sql
并添加了另外两个视图,"mammals" 视图将仅保留在您的架构中,您可以通过版本化迁移(或手动)将其删除.
我已经为我的项目设置了一堆可重复的迁移,以删除(并重新创建)一些经常修改的数据库视图。包结构如下所示:
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.sql
和 R_pets_mammals_rodents_view.sql
,分别。这也需要 renaming/deleting 原始 R_pets_mammals_view.sql
文件。
我想知道我是否可以在不弄乱我的架构版本控制的情况下执行此操作(可能会终止该过程中的任何托管环境)?不幸的是,我在 Flyway 文档中找不到这个问题的答案。
P.S.: 我知道,一旦版本化迁移部署到本地环境以外的任何地方,重命名版本化迁移并不是一个好主意。但是,由于可以随意修改可重复迁移(并且因为它们是最后执行的),所以我不确定它们是否真的 "count" 在这种情况下。
从技术角度来看,您可以根据需要添加、删除和重命名 repeatable 迁移。 Flyway 不会对删除的 repeatable 迁移做任何事情。这些迁移也将保留在 schema_version
table 中。因此,您仍然可以跟踪在您的模式上执行了哪些 repeatable 迁移,即使它们已被删除。
在您的示例中,您删除了 R__pets_mammals_view.sql
并添加了另外两个视图,"mammals" 视图将仅保留在您的架构中,您可以通过版本化迁移(或手动)将其删除.