只需使用 flywaytest 来测试我的应用程序。我想知道是否有一种方法可以在导入迁移脚本后进行回滚。如果我不清楚,请询问信息。
谢谢
您的问题不是很清楚,但如果您想回滚失败的迁移并重试,请执行以下步骤:
如果您查看 schema_version 表,您应该会看到失败的脚本(状态列 = FAILED)。您需要更正此脚本,以免再次失败。此外,如果某些脚本成功完成,您可能必须手动恢复这些更改,因为再次运行它们可能会导致失败。
然后,您从表中删除这一行,
例如delete from schema_version where state = 'FAILED';
然后将当前版本设置回失败之前的脚本。您可以通过将其 CURRENT_VERSION 设置为 1 来做到这一点,
例如update schema_version set current_version = 1 where version = 1.XX;
然后,您可以尝试再次运行 flyway 迁移。
flywaydb 不支持回滚,以防迁移期间出现问题,您可以使用的最佳用户是:
http://flywaydb.org/documentation/maven/repair.html
但是您必须自己确保数据库中数据的完整性。
如果您正在使用的数据库支持检查点,请始终建议在迁移之前执行检查点。
祝你好运
flyway不支持单行命令回滚,
没有类似的命令mvn flyway:rollback
,有两种方法可以做(IMO)
常见问题解答中对此进行了解释:
更新:Flyway 5.0 现在带有一个撤消命令。