【问题标题】:Flyway for multiple database connections (Java/Spring)用于多个数据库连接的 Flyway (Java/Spring)
【发布时间】:2020-01-23 17:34:05
【问题描述】:

我的 Java/Springboot 2 应用程序从一个数据库读取并写入第二个数据库。代码工作正常(两个不同的数据源、实体工厂、目录等),但我不知道如何告诉 Flyway 使用脚本 A 更新 DB A 和脚本 B 更新 DB B。

谷歌搜索已经为不同环境中的不同单个数据库和相同类型的多个数据库找到了结果,但我没有找到正确的搜索词来找到有关如何同时与具有不同架构的两个不同数据库进行对话的答案时间。

【问题讨论】:

  • 您找到解决此问题的正确方法了吗?

标签: java spring spring-boot flyway


【解决方案1】:

如 Spring Boot 文档中所述

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-execute-flyway-database-migrations-on-startup

您还可以添加一个特殊的 {vendor} 占位符来使用特定于供应商的 脚本。假设如下:

 spring.flyway.locations=classpath:db/migration/\{vendor} 

而不是 使用 db/migration,前面的配置设置要使用的文件夹 根据数据库的类型(如db/migration/mysql for MySQL)。支持的数据库列表可在 数据库驱动程序。

你可以改变flyway的默认位置

spring.flyway.locations=classpath:db/migration/vendor1, classpath:db/migration/vendor2

Spring Boot 调用 Flyway.migrate() 来执行数据库迁移。如果您想要更多控制权,请提供一个实现 FlywayMigrationStrategy 的 @Bean。

【讨论】:

  • 对不起,我不明白这是如何解决问题的。我可以使用 2 个脚本创建 2 个目录,并且正如您列出的页面所述,我可以创建两个数据源。但是我看不到如何将目录 A 映射到数据源 A 和 B 到 B。这不是您提到的供应商关键字,对吗?因为我的两个脚本都是 Postgres 并且供应商没有说明要使用哪个数据源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2013-03-06
  • 1970-01-01
相关资源
最近更新 更多