【发布时间】:2016-07-26 02:44:49
【问题描述】:
如何使用 Spring Boot 手动启动 flyway?因为我的应用程序中有 2 个 db,所以在 Springboot 加载属性后连接到 DB 之前,我需要从我的 2 个 db 运行 flyway。
【问题讨论】:
标签: java spring-boot flyway
如何使用 Spring Boot 手动启动 flyway?因为我的应用程序中有 2 个 db,所以在 Springboot 加载属性后连接到 DB 之前,我需要从我的 2 个 db 运行 flyway。
【问题讨论】:
标签: java spring-boot flyway
您可以使用 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 迁移。
【讨论】:
如果我理解正确,您不想手动启动 flyway,而是在两个数据库上运行它。方法如下:
创建两个数据源并将一个标记为@Primary,另一个(应该是一个bean)标记为@FlywayDataSource。 当 flyway 运行时,它将自动在两个数据源上运行。见https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-execute-flyway-database-migrations-on-startup
【讨论】: