如何为多个模式设置 Flyway 迁移

问题描述 投票:0回答:1

我目前正在使用 Quarkus 和导入的 Flyway 扩展来执行数据库迁移。目前它对于默认模式“public”运行良好,但它似乎无法选择其他 .sql 文件来运行。

我目前的文件夹结构如下: 数据库/食物 数据库/公共

我将要运行以进行迁移的所有 .sql 文件存储到单独的文件夹中,每个文件夹映射到数据库中的架构名称(这只是命名约定,以便我们更容易跟踪)。

现在对于 application.properties 文件,这就是我目前拥有的:

# common flyway configs for all schemas
quarkus.flyway.enabled=true
quarkus.flyway.migrate-at-start=true
quarkus.flyway.out-of-order=true
quarkus.flyway.repair-at-start=true
quarkus.flyway.ignore-migration-patterns=*:ignored
quarkus.flyway.validate-migration-naming=true
#quarkus.flyway.schemas=public,food

# public schema config
quarkus.flyway.baseline-on-migrate=true
quarkus.flyway.baseline-version=0.9.4
quarkus.flyway.baseline-description=Initial version
quarkus.flyway.schemas=public
quarkus.flyway.locations=db/public

quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=${DB_USER}
quarkus.datasource.password=${DB_PASS}
quarkus.datasource.jdbc.url=${JDBC_URL}

# food schema config
quarkus.flyway.food.enabled=true
quarkus.flyway.food.baseline-on-migrate=true
quarkus.flyway.food.baseline-version=0.9.4
quarkus.flyway.food.baseline-description=Initial version
quarkus.flyway.food.schemas=food
quarkus.flyway.food.locations=db/food

quarkus.datasource.food.db-kind=postgresql
quarkus.datasource.food.username=${DB_USER}
quarkus.datasource.food.password=${DB_PASS}
quarkus.datasource.food.jdbc.url=${JDBC_URL}

但是,每当它运行时,它似乎只扫描 db/public 文件夹内的迁移。来自其他文件夹的其他迁移将不会运行。

如果有人有任何想法,那就太好了。或者如果有人需要更多详细信息,我可以提供。

java quarkus database-migration flyway
1个回答
0
投票

发现成功指定特定模式名称,如下所示:

quarkus.datasource.jdbc.url=${JDBC_URL}?currentSchema=public
quarkus.datasource.food.jdbc.url=${JDBC_URL}?currentSchema=food

# this one as well
quarkus.flyway.food.migrate-at-start=true
© www.soinside.com 2019 - 2024. All rights reserved.