Spring Boot: миграция Flyway до инициализации mybatis - PullRequest
0 голосов
/ 24 апреля 2018

В моем приложении Spring Boot я использую Flyway для миграции БД и MyBatis вместе. Проблема в том, что MyBatis инициализируется до Flyway , поэтому некоторые операции с БД называются (в @PostConstruct) до миграции БД .

Если я взгляну на FlywayAutoConfiguration , то есть:

@AutoConfigureAfter({DataSourceAutoConfiguration.class, ...})
public class FlywayAutoConfiguration { 
  ...

Как я понимаю, мне нужно переопределить FlywayAutoConfiguration и добавить:

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

Не уверен, как это сделать. Спасибо за любую помощь.

1 Ответ

0 голосов
/ 25 апреля 2018

Я бы объявил определение @Bean для flyway(), а затем еще одно определение @Bean для любого источника данных, находящегося в вашем распоряжении, и обязательно инициализировал бы его после bean-компонента flyway, что вы можете просто сделать, добавив @DependsOn("flyway")аннотация в объявлении bean-компонента источника данных.

Таким образом вы можете быть уверены, что любые задачи инициализации данных, запущенные вашим источником данных, будут выполнены после того, как flyway выполнит свою работу.

...