[spring-projects/spring-boot]透明地集成由 DI 框架创建的 Flyway 6.0 支持 JavaMigration 实例

2024-04-17 302 views
7

从 Flyway 6.0(将于 2019 年第一季度发布)开始,Spring 用户可以使用它自动将所有JavaMigrationSpring beans 与 Flyway 结合使用:

import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.migration.JavaMigration;
import org.springframework.context.ApplicationContext;

...
ApplicationContext applicationContext = ...; // obtain a reference to Spring's ApplicationContext.

Flyway flyway = Flyway.configure()
    .dataSource(url, user, password)
    // Add all Spring-instantiated JavaMigration beans
    .javaMigrations(applicationContext.getBeansOfType(JavaMigration.class).values().toArray(new JavaMigration[0]))
    .load();
flyway.migrate();

Spring Boot 无疑能够使其对用户完全透明。

参考:

回答

8

还没有受让人吗?如果是这样,我想完成这项任务

2

@SammyVimes 感谢您的提议,但 Flyway 6 尚未发布,因此目前无法执行任何操作。

7

@wilkinsona 是的,但是可以在 Flyway Beta 中使用 Java 迁移,所以我想我可以添加对它的支持并在发布时合并:)

0

凉爽的。如果您想针对测试版准备一些东西,准备在发布并合并时更新到 GA,我们将不胜感激。

7

完毕!等待 GA(看起来会在四月初发生)。

另外,Flyway6 中的 API 略有变化,因此我必须修复兼容性。

7

伟大的!非常感谢。您介意将更改分成两个单独的提交吗?一种是进行升级并针对重大 API 更改进行必要的更改,另一种是添加对 Java 迁移的支持?

5

当然!

9

飞行路线6

自动配置

澄清一下:我已将它们放入不同的分支,因此我可以Flyway6在发布分支时对其进行变基和压缩,然后autoconfiguration可以对其进行变基。

5

这看起来很棒。非常感谢@SammyVimes。我们期待 Flyway 6 的发布,以便我们可以合并这些更改。

1

Flyway 6.0 现已正式发布。

2

是的,感谢您的通知,我今天将准备好合并请求!

8

哎呀,看起来 Flyway 6.0.0 坏了! H2 数据库使用测试失败,并且 Flyway 存储库的提交日志包含此提交(因此 H2 现在无法工作)

图像

4

好的,我将在今天晚些时候更新我的代码

4

以#17993 结束。