根据 Flyway,原始 SQL 脚本现在无效

Original SQL script now invalid according to Flyway

我们有一个 Spring 启动应用程序已经投入生产一段时间了。我们使用 Flyway 来管理数据库迁移。我刚刚从 2.4.5 升级到 Spring boot 2.5.4,这带来了对 Flyway 7.7.3 的升级。

在全新的本地环境中执行所有迁移时,迁移现在由于以下注释的语法问题而失败:

---*********************---
-- ** AUDITING TABLES ** --
---*********************---

我想这在已经执行过此迁移的环境中不会成为问题,但是考虑到由于校验和比较无法编辑原始文件,使用新数据库修复此问题的最佳方法是什么关于迁移?

我当前的版本控制只包括一个主要版本,即 V2、V3 等。我的想法是摆脱 V2(有问题的脚本)并引入 V2.1,它将是 V2 的精确副本,但有错误评论区删了。然后我将 ignoreMissingMigrationsignoreIgnoredMigrations 都设置为 true

这听起来是解决这个问题的正确方法吗?

提前致谢。

更改脚本然后执行 flyway repair 将是理想的解决方案 - 这将纠正校验和。

假设由于某种原因此选项不可用(知道它是什么以防我们修复它会很有帮助!),以上听起来是正确的。 ignoreMissingMigrations 意味着您的旧部署不会反对 V2 不存在,ignoreIgnoredMigrations 意味着他们不会反对 V2.1 存在。缺点是这些忽略在长期内可能无效 - 因此它们不会,例如,捕捉到后来无意中丢失的脚本。