Flyway始终执行可重复的迁移

Ian*_*ako 7 sql database-migration flyway

即使校验和相同,是否也可以在 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 ... */;
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*son 14

是的,从 Flyway 6.3.0 开始,可以使用注释中的时间戳占位符每次运行可重复的迁移,确保 Flyway 每次都将其视为重新更改。例如:

R__UtilityProcedures.sql
-- ${flyway:timestamp}
create or replace procedure my_important_proc
Run Code Online (Sandbox Code Playgroud)