0

只需使用 flywaytest 来测试我的应用程序。我想知道是否有一种方法可以在导入迁移脚本后进行回滚。如果我不清楚,请询问信息。

谢谢

4

4 回答 4

5

您的问题不是很清楚,但如果您想回滚失败的迁移并重试,请执行以下步骤:

  1. 如果您查看 schema_version 表,您应该会看到失败的脚本(状态列 = FAILED)。您需要更正此脚本,以免再次失败。此外,如果某些脚本成功完成,您可能必须手动恢复这些更改,因为再次运行它们可能会导致失败。

  2. 然后,您从表中删除这一行,
    例如delete from schema_version where state = 'FAILED';

  3. 然后将当前版本设置回失败之前的脚本。您可以通过将其 CURRENT_VERSION 设置为 1 来做到这一点,
    例如update schema_version set current_version = 1 where version = 1.XX;

  4. 然后,您可以尝试再次运行 flyway 迁移。

于 2013-01-18T11:23:54.323 回答
1

flywaydb 不支持回滚,以防迁移期间出现问题,您可以使用的最佳用户是:

http://flywaydb.org/documentation/maven/repair.html

但是您必须自己确保数据库中数据的完整性。

如果您正在使用的数据库支持检查点,请始终建议在迁移之前执行检查点。

祝你好运

于 2014-10-15T14:09:00.460 回答
0

flyway不支持单行命令回滚,

没有类似的命令mvn flyway:rollback,有两种方法可以做(IMO)

  1. 关注@user528827 的回答
  2. 尝试使用 rails 的迁移 :)
于 2013-01-19T17:08:56.553 回答
0

常见问题解答中对此进行了解释:

更新:Flyway 5.0 现在带有一个撤消命令

于 2013-01-19T10:26:38.290 回答