Multiple datasources migrations using Flyway in a Spring Boot application

后端 未结 4 534
刺人心
刺人心 2020-12-31 03:39

We use Flyway for db migration in our Spring Boot based app and now we have a requirement to introduce multi tenancy support while using multiple datasources strategy. As pa

4条回答
  •  余生分开走
    2020-12-31 04:17

    Found an easy solution for that - I added the step during the creation of my emf:

    @Qualifier(EMF2)
    @Bean(name = EMF2)
    public LocalContainerEntityManagerFactoryBean entityManagerFactory2(
        final EntityManagerFactoryBuilder builder
    ) {
        final DataSource dataSource = dataSource2();
        Flyway.configure()
              .dataSource(dataSource)
              .locations("db/migration/ds2")
              .load()
              .migrate();
        return builder
            .dataSource(dataSource)
            .packages(Role.class)
            .properties(jpaProperties2().getProperties())
            .persistenceUnit("domain2")
            .build();
    }
    

    I disabled spring.flyway.enabled for that.

    SQL files live in resources/db/migration/ds1/... and resources/db/migration/ds2/...

提交回复
热议问题