首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于迁移的Flywaydb多个配置文件正在失败。

用于迁移的Flywaydb多个配置文件正在失败。
EN

Stack Overflow用户
提问于 2018-07-25 12:57:04
回答 1查看 2.5K关注 0票数 5

我们尝试在单个数据库中迁移一些SQL版本,结果进展顺利。何时尝试通过传递多个配置文件同时实现多个数据库的迁移是失败的。

问题是,它只接受最后一个配置文件,当传递"-configFiles“参数中的多个配置文件时,只对最后一个配置文件中提到的数据库执行迁移。

下面是相同的屏幕截图,它只取了flywayconfdb.conf文件,并留下了其他文件。

代码语言:javascript
复制
[oracle@localhost flyway-5.1.4]$ ./flyway -configFiles=/home/oracle/flyway/flyway-5.1.4/conf/flyway.conf,/home/oracle/flyway/flyway-5.1.4/conf/flywayjiradb.conf,/home/oracle/flyway/flyway-5.1.4/conf/flywayconfdb.conf info
Flyway Community Edition 5.1.4 by Boxfuse

Database: jdbc:oracle:thin:@//XXXXXXXXX:1521/confdb (Oracle 12.2)
Schema version: << Empty Schema >>

+----------+---------+-------------+------+--------------+-------+
| Category | Version | Description | Type | Installed On | State |
+----------+---------+-------------+------+--------------+-------+
| No migrations found                                            |
+----------+---------+-------------+------+--------------+-------+

请帮助我们解决同样的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 13:42:53

Flyway合并配置文件。它不会对每个迁移进行单独的迁移。

对于每个配置文件,Flyway 将内容添加到属性映射Properties每个键只有一个值,所以如果同一键出现在第二个配置文件中,它将覆盖前一个值。这就是为什么只使用上一个配置文件中的设置的原因。

它允许您在某个地方定义一些公共设置,例如在~/flyway.conf中,这些设置可以与一些更具体的设置合并,例如在单个项目中。

但它不允许您在一次运行中迁移多个数据库。您需要在每个数据库运行一次Flyway:

代码语言:javascript
复制
./flyway -configFiles=/home/oracle/flyway/flyway-5.1.4/conf/flywayjiradb.conf info
./flyway -configFiles=/home/oracle/flyway/flyway-5.1.4/conf/flywayconfdb.conf info

文档将压倒秩序描述为:

  • 命令行参数
  • 环境变量
  • 自定义配置文件
  • <current-dir>/flyway.conf
  • <user-home>/flyway.conf
  • <install-dir>/conf/flyway.conf
  • 飞道命令行默认值

将设置定义在更高的列表上,具有更大的优先级。

文档给出了以下示例:

这意味着,例如,如果flyway.url既存在于配置文件中,又从命令行作为-url=传递,则命令行参数将优先使用。

自定义配置文件(-configFiles)行可以展开为:

  • 命令行参数
  • 环境变量
  • 自定义配置文件n
  • ..。
  • 自定义配置文件2
  • 自定义配置文件1
  • <current-dir>/flyway.conf
  • <user-home>/flyway.conf
  • <install-dir>/conf/flyway.conf
  • 飞道命令行默认值

相应的例子可以是:

这意味着,例如,如果flyway.url同时存在于自定义配置文件1自定义配置文件2中,则自定义配置文件2设置将被优先使用。

类似地,如果flyway.url也位于自定义配置文件n中,则将从自定义配置文件2重写该设置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51519491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档