我们有一个生产数据库,我们使用flyway维护它。最近我们克隆了我们的生产数据库来创建一个UAT数据库。 UAT数据库具有与生产中相同的模式和数据。现在我们尝试运行" mvn flyway:migrate"在UAT数据库上测试新的飞路脚本。但是,我们得到了
+---------+-----------------------+---------------------+---------+
| Version | Description | Installed on | State |
+---------+-----------------------+---------------------+---------+
| 0.0.1 | script.1 | | <Baseln |
| 0.0.2 | script.2 | | <Baseln |
| 0.0.3 | script.3 | | <Baseln |
| 0.1.1 | script.4 | | <Baseln |
| 0.1.2 | script.5 | | <Baseln |
| 0.2.0 | script.6 | | <Baseln |
| 0.5.1 | script.7 | | <Baseln |
| 0.5.2 | script.8 | | <Baseln |
| 0.6.0 | script.9 | | <Baseln |
| 0.7.0 | script.10 | | <Baseln |
| 0.8.0 | script.11 | | <Baseln |
| 0.9.0 | script.12 | | <Baseln |
| 0.10.0 | script.13 | | <Baseln |
| 0.11.1 | script.14 | | <Baseln |
| 0.12.0 | script.15 | | <Baseln |
| 0.13.0 | script.16 | | <Baseln |
| 0.14.0 | script.17 | | <Baseln |
| 0.15.0 | script.18 | | <Baseln |
| 0.16.0 | script.19 | | <Baseln |
| 0.16.1 | script.20 | | <Baseln |
| 0.17.0 | script.21 | | <Baseln |
| 0.17.1 | script.22 | | <Baseln |
| 0.18.0 | script.23 | | <Baseln |
| 1 | << Flyway Baseline >> | 2016-11-07 08:11:33 | Baselin |
| 1.16.0 | script.19 | 2017-02-15 10:03:18 | Future |
| 1.16.1 | script.20 | 2017-02-15 10:03:18 | Future |
+---------+-----------------------+---------------------+---------+
script.23是一个新脚本。我们预计该州正在等待中。 但是,所有脚本的状态变为Baseln。我搜索了相关主题一天,但找不到与我的情况相关的场景。我可以使用flyway(maven)上的任何配置在克隆数据库上运行migrate命令吗?请帮忙。 (我的数据库是SQL Server 2014,flyway版本4.0,maven版本是3.5,JDK版本1.7)
非常感谢。 志赋
答案 0 :(得分:0)
我认为所有版本lower than the baseline are not executed - 它们应该属于基线。
如果script.23是新迁移,它的版本应该大于上一版本,通常为1.18.0(根据标准的flyway配置,V1_18_0__script.23.sql而不是V0_18_0__script.23.sql)。
重命名此文件后,请在尝试再次迁移之前进行修复。