在 flyway 中删除迁移

dve*_*opp 8 flyway

我遇到以下问题:

org.flywaydb.core.api.FlywayException: Validate failed: Detected applied migration not resolved locally: 1.44
Run Code Online (Sandbox Code Playgroud)

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

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

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

Axe*_*ine 14

此问题与最佳实践有关:使用后如何修改 flyway 迁移脚本

基本答案是:一旦应用就不要删除

只要最后一个(在您的情况下为 1.48)是正确的,在迁移过程中某些中间状态是否不是您想要的并不重要。

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

现在,如果这还不够,您真的需要删除此迁移,请删除文件并flyway_schema_history手动修补表以使其再次保持一致。这是有风险的,应该是绝对的最后手段。