【发布时间】:2020-10-09 11:31:13
【问题描述】:
我已经看到许多很棒的解决方法来创建 Flyway JavaMigrations 并使用 @DependsOn 和 ApplicationContextAware(例如 https://stackoverflow.com/a/48242865/5244937)注入 Spring Bean。
然而,Flyway 6 文档的一部分声称依赖注入对于 Spring Beans 原生是可能的:
- https://flywaydb.org/documentation/api/hooks#java-based-migrations-as-spring-beans
- https://github.com/flyway/flyway/issues/1062
是真的吗?这将如何运作?
【问题讨论】:
-
通过这一行:ApplicationContext applicationContext = ...; // 获取 Spring 的 ApplicationContext 的引用。
-
到目前为止,我只使用了基于 SQL 的迁移和 Flyways 自动发现功能。我是否正确理解这将不再适用于这种方法,而是我需要.. - 手动启动迁移? - 使用模式 (1) 实例化 Spring Bean / FlywayMigrationInitializer,(2) 使用
.javaMigrations(..)手动查找迁移和 (3) 通过flyway.migrate();手动启动 flyway? -
没有 SQL 仍然可以工作,恕我直言,这是首选方式。
标签: spring-boot dependency-injection spring-data flyway