【发布时间】:2023-01-01 18:48:19
【问题描述】:
我正在尝试 Java 迁移教程。修改迁移的 Java 类后,Java 类卡在 Future 状态并阻止新的迁移。我是 Flyway 的新手,不确定我哪里做错了。或者 Future 状态是否存在任何已知问题?
我首先添加了两个 SQL 文件并运行了 mvn flyway:migrate。两个文件都已成功迁移。然后添加一个 Java 类 V3__Anonymize,再次运行 mvn flyway:migrate。也很成功信息命令显示
+-----------+--------+---------------------+------+---------------------+---------+
| Category | Version| Description | Type | Installed On | State |
+-----------+--------+---------------------+------+---------------------+---------+
| Versioned | 1 | Create person table | SQL | 2022-11-03 08:26:52 | Success |
| Versioned | 2 | Add people | SQL | 2022-11-03 08:28:45 | Success |
| Versioned | 3 | Anonymize | JDBC | 2022-11-03 09:05:29 | Success |
+-----------+--------+---------------------+------+---------------------+---------+
然后我修改了 V3__Anonymize 类,只添加一行来为 System.out.println("something") 迁移函数。 info 命令显示了这第三个具有 Future 状态的作业:
+-----------+--------+---------------------+------+---------------------+---------+
| Category | Version| Description | Type | Installed On | State |
+-----------+--------+---------------------+------+---------------------+---------+
| Versioned | 1 | Create person table | SQL | 2022-11-03 08:26:52 | Success |
| Versioned | 2 | Add people | SQL | 2022-11-03 08:28:45 | Success |
| Versioned | 3 | Anonymize | JDBC | 2022-11-03 09:05:29 | Future | +-----------+--------+---------------------+------+---------------------+---------+
然后运行 mvn flyway:migrate,它给出了如下所示的警告。
[INFO] --- flyway-maven-plugin:9.7.0:migrate (default-cli) @ my-migration-service ---
[INFO] Flyway Community Edition 9.7.0 by Redgate
[INFO] See what's new here: https://flywaydb.org/documentation/learnmore/releaseNotes#9.7.0
[INFO]
[INFO] Database: jdbc:h2:file:./target/foobar (H2 2.1)
[INFO] Successfully validated 3 migrations (execution time 00:00.020s)
[INFO] Current version of schema "PUBLIC": 3
[WARNING] Schema "PUBLIC" has a version (3) that is newer than the latest available migration (2) !
[INFO] Schema "PUBLIC" is up to date. No migration necessary.
我尝试运行 mvn compile,然后运行 mvn flyway:migrate、mvn flyway:info,但我仍然收到相同的警告,第三个作业仍处于 Future 状态。
我还添加了一个新的 Java 类 V4__Add_another_person,然后运行 mvn compile、mvn flyway:migrate,但第三个作业的状态没有变化。新作业未添加到 flyway:info 输出。
然后运行 mvn flyway:migrate,它给出了如下所示的警告。
【问题讨论】: