温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Multiple datasources migrations using Flyway in a Spring Boot application
flyway spring-boot

其他 - 在Spring Boot应用程序中使用Flyway进行多个数据源迁移

发布于 2020-04-22 18:26:37

我们在基于Spring Boot的应用程序中使用Flyway进行数据库迁移,现在我们需要在使用多个数据源策略的同时引入多租户支持。作为其一部分,我们还需要支持多个数据源的迁移。所有数据源都应保持相同的结构,因此应使用相同的迁移脚本来迁移所有数据源。另外,迁移应该在应用程序启动时进行(与构建时间相反,而似乎可以将Maven插件配置为迁移多个数据源)。为了达到这个目的,最好的方法是什么?该应用程序已经定义了数据源bean,但是Flyway仅对主数据源执行迁移。

查看更多

提问者
Eli Avzak
被浏览
9
5,534 2020-02-11 22:33

Flyway支持使用Java编码的迁移,因此您可以在应用程序启动期间启动Flyway。

https://flywaydb.org/documentation/migration/java

我不确定如何配置Flyway以通过其配置文件来定位多个数据源。我自己的开发基于使用Java对每个需要使用的数据源调用一次Flyway。Spring Boot支持标记为的bean的自动装配@FlywayDataSource,但是我还没有研究如何使用它。

对于Java解决方案,代码可以简单到

    Flyway flyway = new Flyway();

    // Set the data source
    flyway.setDataSource(dataSource);

    // Where to search for classes to be executed or SQL scripts to be found
    flyway.setLocations("net.somewhere.flyway");

    flyway.setTarget(MigrationVersion.LATEST);
    flyway.migrate();