Fer*_*iro 7 java spring flyway spring-boot
有没有办法使用 Spring Boot运行基于 Flyway Java 的回调?我正在转换一个现有项目,在每次迁移后都会更新一些视图定义,这是由 Java 完成的,因为它需要一些额外的逻辑。我知道它可以在 pl/pgsql 中完成(我们正在使用 Postgres)但它已经在 Java 中完成和测试。
Spring boot 文档说这是可能的,但它列出了回调脚本应该与迁移位于同一目录中,也许这仅适用于基于 SQL 的回调。
此代码在没有 Spring Boot 的情况下工作:
Flyway flyway = new Flyway();
flyway.setDataSource(this.getDataSource());
flyway.setLocations("/db/migration");
flyway.setCallbacks(new LogMaintenanceFlywayCallback());
flyway.migrate();
Run Code Online (Sandbox Code Playgroud)
我有几次迁移,/db/migration
每次迁移之后我都需要执行我的回调。它适用于我当前的项目,我需要在 Spring Boot 中执行相同的操作(或其他方式来获得相同的行为)。
小智 5
你可以有这样的配置,它会起作用:
@Configuration
public class FlywayFactory {
@Bean
public FlywayMigrationInitializer flywayInitializer(Flyway flyway, FlywayCallback flywayCallback) {
flyway.setCallbacks(flywayCallback);
return new FlywayMigrationInitializer(flyway);
}
@Bean
public FlywayCallback flywayCallback() {
return new LogMaintenanceFlywayCallback();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5117 次 |
最近记录: |