根据 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 的精确副本,但有错误评论区删了。然后我将 ignoreMissingMigrations
和 ignoreIgnoredMigrations
都设置为 true
这听起来是解决这个问题的正确方法吗?
提前致谢。
更改脚本然后执行 flyway repair
将是理想的解决方案 - 这将纠正校验和。
假设由于某种原因此选项不可用(知道它是什么以防我们修复它会很有帮助!),以上听起来是正确的。 ignoreMissingMigrations
意味着您的旧部署不会反对 V2 不存在,ignoreIgnoredMigrations
意味着他们不会反对 V2.1 存在。缺点是这些忽略在长期内可能无效 - 因此它们不会,例如,捕捉到后来无意中丢失的脚本。
我们有一个 Spring 启动应用程序已经投入生产一段时间了。我们使用 Flyway 来管理数据库迁移。我刚刚从 2.4.5 升级到 Spring boot 2.5.4,这带来了对 Flyway 7.7.3 的升级。
在全新的本地环境中执行所有迁移时,迁移现在由于以下注释的语法问题而失败:
---*********************---
-- ** AUDITING TABLES ** --
---*********************---
我想这在已经执行过此迁移的环境中不会成为问题,但是考虑到由于校验和比较无法编辑原始文件,使用新数据库修复此问题的最佳方法是什么关于迁移?
我当前的版本控制只包括一个主要版本,即 V2、V3 等。我的想法是摆脱 V2(有问题的脚本)并引入 V2.1,它将是 V2 的精确副本,但有错误评论区删了。然后我将 ignoreMissingMigrations
和 ignoreIgnoredMigrations
都设置为 true
这听起来是解决这个问题的正确方法吗?
提前致谢。
更改脚本然后执行 flyway repair
将是理想的解决方案 - 这将纠正校验和。
假设由于某种原因此选项不可用(知道它是什么以防我们修复它会很有帮助!),以上听起来是正确的。 ignoreMissingMigrations
意味着您的旧部署不会反对 V2 不存在,ignoreIgnoredMigrations
意味着他们不会反对 V2.1 存在。缺点是这些忽略在长期内可能无效 - 因此它们不会,例如,捕捉到后来无意中丢失的脚本。