在flyway中删除迁移

时间:2018-05-04 11:29:03

标签: flyway

我遇到以下问题:

org.flywaydb.core.api.FlywayException: Validate failed: Detected applied migration not resolved locally: 1.44

当我理解我在1.44中添加的数据无效且我不想在旧环境中处理它时发生这种情况,但在新环境中我不想要这些数据。我想要在新迁移中插入的数据(例如1.48)。

  • 如果我更改旧的迁移,由于校验和,它将在旧的环境中失败;
  • 如果我离开它,在新的环境中,我将从1.44获得无效数据;

如何删除它以便我完成所需而不会出错?什么是正确的方法?

2 个答案:

答案 0 :(得分:2)

此问题与Best pratice: How to modify flyway migration script after it has been used

有关

基本答案是:在应用后不删除

如果在迁移过程中,某个中间状态并不完全符合您的要求,只要最后一个(在您的情况下为1.48)是正确的,这无关紧要。

现在,如果确实需要删除此迁移,请问自己是否用空文件替换它也可以完成这项工作。如果是,那么你可以按照我在这里给出的建议:https://stackoverflow.com/a/35491545/350428

现在,如果仍然不够,并且您真的需要删除此迁移,请删除该文件并手动修补flyway_schema_history表以使其再次保持一致。这很容易出现风险,应该是绝对的最后解决方案。

答案 1 :(得分:0)

您可以 UNDO 进行迁移:UNDO flyway migration