回滚脚本迁移

时间:2013-01-18 10:56:40

标签: flyway

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

感谢

4 个答案:

答案 0 :(得分:5)

您的问题不是很明确,但如果您想要回滚失败的迁移并在此重试,则需要采取以下步骤:

  1. 如果您查看schema_version表,您应该看到失败的脚本(state column = 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. 然后,您可以尝试再次运行飞路迁移。

答案 1 :(得分:1)

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

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

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

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

祝你好运

答案 2 :(得分:0)

答案 3 :(得分:0)

flyway不支持使用单行命令回滚,

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

  1. 按照@ user528827
  2. 的回答
  3. 尝试使用rails的迁移:)