Flyway 始终执行可重复的迁移

Posted

技术标签:

【中文标题】Flyway 始终执行可重复的迁移【英文标题】:Flyway always execute repeatable migrations 【发布时间】:2020-11-15 08:45:51 【问题描述】:

即使校验和相同,是否可以在 flyway 中执行可重复的迁移?我面临的问题是有一个视图扩展了另一个带有额外行的表,并且视图不会自动更新。

这里有一个例子:

R__person_view.sql

CREATE OR REPLACE VIEW person_view AS 
    SELECT p.*, e.name FROM person p, entity e
    WHERE /* not relevant here ... */;

如果首先执行此迁移,它将正常工作。如果我添加另一个迁移,我修改表person,则更改不会适应,因为视图迁移校验和没有改变。

【问题讨论】:

【参考方案1】:

是的,从 Flyway 6.3.0 开始,每次using the timestamp placeholder 在评论中都可以运行可重复的迁移,确保 Flyway 每次都将其视为重新更改。例如:

R__UtilityProcedures.sql
-- $flyway:timestamp
create or replace procedure my_important_proc

【讨论】:

以上是关于Flyway 始终执行可重复的迁移的主要内容,如果未能解决你的问题,请参考以下文章

Flyway 可重复迁移 - 在版本化迁移之前执行?

如何控制flyway可重复脚本的执行顺序

Flyway 可重复迁移随机运行

可以重命名 Flyway 可重复迁移吗?

按顺序可重复迁移

序列和分区的版本化或可重复脚本 - Flyway?