最佳实践:使用后如何修改flyway迁移脚本
Best practice: How to modify flyway migration script after it has been used
我正在寻找以下情况的建议。
我在我的生产环境中设置了 flyway 迁移脚本。在每次部署时,数据库都将迁移到当前版本。
我已经创建了几个已应用于生产数据库的迁移脚本。
最近我升级了我的开发 MySQL 工具,其中现在包含有关使用已弃用函数的警告和其他警告。这些警告在旧版本中没有显示。
当然,我想修复这些警告,特别是对于未来版本的数据库不再支持已弃用函数的情况。
但是包含警告的迁移已被部署和使用。如果我更改其中一个脚本,则会出现飞路警告:
ERROR: Validate failed. Migration Checksum mismatch for migration 2.0
-> Applied to database : 1778293504
-> Resolved locally : 1831545539
我可以更改存储在数据库中的校验和以进行迁移,但这听起来不像是一种“好”方法。
在 已经使用迁移脚本后,更改迁移脚本的常用方法/最佳做法是什么?
第一条规则是不要。
第二个是非常小心地使用 Flyway.repair() 将数据库中的校验和与磁盘上的校验和重新对齐。
我完全同意你不应该这样做的事实。
但如果您真的需要,您可以更改飞路配置并将 validateOnMigrate 布尔值设置为 false。
这是 link:https://flywaydb.org/documentation/commandline/migrate#validateOnMigrate
我正在寻找以下情况的建议。
我在我的生产环境中设置了 flyway 迁移脚本。在每次部署时,数据库都将迁移到当前版本。 我已经创建了几个已应用于生产数据库的迁移脚本。
最近我升级了我的开发 MySQL 工具,其中现在包含有关使用已弃用函数的警告和其他警告。这些警告在旧版本中没有显示。 当然,我想修复这些警告,特别是对于未来版本的数据库不再支持已弃用函数的情况。 但是包含警告的迁移已被部署和使用。如果我更改其中一个脚本,则会出现飞路警告:
ERROR: Validate failed. Migration Checksum mismatch for migration 2.0
-> Applied to database : 1778293504
-> Resolved locally : 1831545539
我可以更改存储在数据库中的校验和以进行迁移,但这听起来不像是一种“好”方法。 在 已经使用迁移脚本后,更改迁移脚本的常用方法/最佳做法是什么?
第一条规则是不要。
第二个是非常小心地使用 Flyway.repair() 将数据库中的校验和与磁盘上的校验和重新对齐。
我完全同意你不应该这样做的事实。
但如果您真的需要,您可以更改飞路配置并将 validateOnMigrate 布尔值设置为 false。
这是 link:https://flywaydb.org/documentation/commandline/migrate#validateOnMigrate