Spring Boot:mybatis初始化之前的flyway迁移

时间:2018-04-24 13:57:28

标签: spring-boot flyway

在我的Spring Boot应用程序中,我使用Flyway进行数据库迁移和MyBatis。 问题是MyBatis在Flyway 之前已初始化,因此在数据库迁移之前,一些数据库操作被称为(在@PostConstruct中)

如果我查看 FlywayAutoConfiguration ,有:

@AutoConfigureAfter({DataSourceAutoConfiguration.class})
@AutoConfigureBefore({MybatisAutoConfiguration.class})
public class FlywayAutoConfiguration { 
  ...

据我了解,我需要覆盖FlywayAutoConfiguration并添加:

{{1}}

不知道该怎么做。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我会为@Bean声明一个flyway()定义,然后为你拥有的任何数据源声明另一个@Bean定义,确保在flyway bean之后初始化它,你可以简单地通过在数据源bean声明中添加@DependsOn("flyway")注释来实现。

通过这种方式,您可以确保数据源启动的任何数据初始化任务都将在flyway完成其工作之后完成。