我正在尝试使用 maven 在“生产支持”分支(即 V3.1)上应用乱序迁移。 3.1 分支有 12 个迁移,从 3.1.0.1 到 3.1.0.12。前 11 个已应用,在我的开发环境中,我已经应用了来自下一个版本 3.3 的两个迁移。信息如下所示:
+----------------+----------------------------+---------------------+---------+
| Version | Description | Installed on | State |
+----------------+----------------------------+---------------------+---------+
| 1 | > | 2013-08-16 16:35:22 | Success |
| 3.1.0.1 | CCI DDL | 2013-08-16 16:41:04 | Success |
| 3.1.0.2 | Update 1 | 2013-08-19 12:17:43 | Success |
| 3.1.0.3 | Add SVT ITEM HISTORY | 2013-08-21 16:24:28 | Success |
| 3.1.0.4 | Drop Col Event Key From ED | 2013-08-27 14:15:36 | Success |
| 3.1.0.5 | Add Job Begin Time COL | 2013-10-10 14:59:14 | Success |
| 3.1.0.6 | Update SVT Column Lengths | 2013-10-23 10:25:33 | Success |
| 3.1.0.7 | Add Seq Number to EDC ECRF | 2013-12-03 14:59:31 | Success |
| 3.1.0.8 | Set EDC ECRF ITEM Seq Numb | 2013-12-03 15:27:08 | Success |
| 3.1.0.9 | Add Table EDC USV FORM | 2013-12-03 15:37:47 | Success |
| 3.1.0.10 | Add Table SVT USV FORM MAP | 2013-12-03 15:52:24 | Success |
| 3.1.0.11 | Add Tables SUBJECT VISIT Q | 2014-04-29 17:09:13 | OutOrde |
| 3.1.0.12 | Add Table BOGUS ERIC TEST | | Ignored |
| 3.3.0.1 | Insert iMedidata CRS Info | 2014-04-24 10:50:38 | Future |
| 3.3.0.2 | Insert Study OBJECT TYPE | 2014-04-24 11:14:37 | Future |
+----------------+----------------------------+---------------------+---------+
我在 V3.1 分支的 mvn 构建输出文件夹中运行以下命令:mvn Flyway:迁移 -Dflyway.outOfOrder=true -P
我得到以下输出:
[错误] 无法在项目 mdmws 上执行目标 org.flywaydb:flyway-maven-plugin:3.0:migrate (default-cli):org.flywaydb.core.api.FlywayException:验证失败。发现应用的迁移和可用的迁移之间存在差异:检测到类路径上缺少应用的迁移:3.3.0.1 -> [帮助 1]
它似乎想要在同一个类路径 target/db/migrations 文件夹中找到已经应用于数据库的 3.3 迁移,但当然这些文件存在于更高版本的分支中。要么我缺少一些配置设置,要么我不明白 outOfOrder 的工作方式。我不想将这些文件从 V3.3 分支拉回到 V3.1 分支。
有人可以帮忙解释一下吗?
我的 pom 从父 pom 继承以下内容,并且大多数配置值都是从配置文件传入的:
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>3.0</version>
<configuration>
<driver>${flyway.driver}</driver>
<url>${flyway.url}</url>
<user>${flyway.user}</user>
<password>${flyway.password}</password>
<outOfOrder>${flyway.outOfOrder}</outOfOrder>
</configuration>
<dependencies>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
</dependencies>
</plugin>
Set validateOnMigrate
为 false,你应该没问题。默认情况下,它将检查已解析的迁移和已应用的迁移是否匹配。在您的具体情况下,这将不起作用,因此您必须禁用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)