我们尝试在单个数据库中迁移一些SQL版本,结果进展顺利。何时尝试通过传递多个配置文件同时实现多个数据库的迁移是失败的。
问题是,它只接受最后一个配置文件,当传递"-configFiles“参数中的多个配置文件时,只对最后一个配置文件中提到的数据库执行迁移。
下面是相同的屏幕截图,它只取了flywayconfdb.conf文件,并留下了其他文件。
[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 |
+----------+---------+-------------+------+--------------+-------+请帮助我们解决同样的问题。
发布于 2018-07-26 13:42:53
Flyway合并配置文件。它不会对每个迁移进行单独的迁移。
对于每个配置文件,Flyway 将内容添加到属性映射。Properties每个键只有一个值,所以如果同一键出现在第二个配置文件中,它将覆盖前一个值。这就是为什么只使用上一个配置文件中的设置的原因。
它允许您在某个地方定义一些公共设置,例如在~/flyway.conf中,这些设置可以与一些更具体的设置合并,例如在单个项目中。
但它不允许您在一次运行中迁移多个数据库。您需要在每个数据库运行一次Flyway:
./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)行可以展开为:
<current-dir>/flyway.conf<user-home>/flyway.conf<install-dir>/conf/flyway.conf相应的例子可以是:
这意味着,例如,如果flyway.url同时存在于自定义配置文件1和自定义配置文件2中,则自定义配置文件2设置将被优先使用。
类似地,如果flyway.url也位于自定义配置文件n中,则将从自定义配置文件2重写该设置。
https://stackoverflow.com/questions/51519491
复制相似问题