【问题标题】:How start flyway manually in spring boot如何在spring boot中手动启动flyway
【发布时间】:2016-07-26 02:44:49
【问题描述】:

如何使用 Spring Boot 手动启动 flyway?因为我的应用程序中有 2 个 db,所以在 Springboot 加载属性后连接到 DB 之前,我需要从我的 2 个 db 运行 flyway。

【问题讨论】:

    标签: java spring-boot flyway


    【解决方案1】:

    您可以使用 flyway maven 插件来填充您的数据库。

    您可以为每个数据库设置两个属性文件并使用 mvn -Dflyway.configFile=myConfig.properties 执行 flyway

    或者

    您可以在执行 maven 时提供 db 属性,例如 mvn -Dflyway.user=myUser -Dflyway.schemas=schema1,schema2 -Dflyway.placeholders.keyABC=valueXYZ

    但请注意,您必须执行两次 flyway maven 任务。每次针对一个数据库。喜欢,

    $mvn -Dflyway.configFile=db1.properties compile migrate
    $mvn -Dflyway.configFile=db2.properties compile migrate
    

    更多信息请参考https://flywaydb.org/documentation/maven/

    如果您对这种 maven 方法感到满意,您就不需要 spring 来进行 flyway 迁移。

    【讨论】:

    • 这不起作用..因为我更新了我的客户端数据库,当我发送一个 .war 来更新应用程序时。但是tks
    【解决方案2】:

    如果我理解正确,您不想手动启动 flyway,而是在两个数据库上运行它。方法如下:

    创建两个数据源并将一个标记为@Primary,另一个(应该是一个bean)标记为@FlywayDataSource。 当 flyway 运行时,它将自动在两个数据源上运行。见https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-execute-flyway-database-migrations-on-startup

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 2020-04-20
      • 2020-07-23
      • 2019-09-10
      • 2018-08-26
      • 1970-01-01
      • 2019-12-06
      • 2020-08-20
      • 2016-09-03
      相关资源
      最近更新 更多