当前位置: 首页 > 知识库问答 >
问题:

最佳实践:如何在使用flyway迁移脚本后对其进行修改

阎兴为
2023-03-14

我在以下情况下寻求建议。

我在生产环境中设置了飞行路线迁移脚本。在每次部署时,数据库都将迁移到当前版本。我已经创建了几个已应用于生产数据库的迁移脚本。

最近,我升级了我的开发MySQL工具,现在包括有关使用已弃用函数的警告和其他警告。旧版本中未显示这些警告。当然,我想修复这些警告,特别是对于数据库的未来版本不再支持已弃用函数的情况。但是,包含警告的迁移已被部署和使用。如果我更改其中一个脚本,则会出现一条飞行路线警告:

ERROR: Validate failed. Migration Checksum mismatch for migration 2.0
-> Applied to database : 1778293504
-> Resolved locally    : 1831545539

我可以更改存储在数据库中的校验和以进行迁移,但这听起来不是一个“好”的方法。在迁移脚本已经使用之后,更改它的常见方法/最佳实践是什么?

共有2个答案

南门志
2023-03-14

我完全同意你不应该这样做的事实。

但是如果您真的需要,您可以更改flyway配置并将validateOnMigrate布尔值设置为false。

下面是链接:https://flywaydb . org/documentation/command line/migrate # validateOnMigrate

周健
2023-03-14

第一条规则是不要。

第二个是非常小心地做,并使用Flyway.repair()将数据库中的校验和与磁盘上的校验和重新对齐。

 类似资料:
  • 问题内容: 我了解到使用Java进行flywaydb迁移可与JDBC连接一起使用,并且还可以通过SpringTemplate进行spring支持,但是flyway不适用于DAO。 对于具有更多关系的表/实体,使用DAO而不是sql进行迁移使工作变得更加容易。 是否有解决方案或解决方法来解决此问题? 问题答案: 首先,Flyway拥有自己的事务管理系统,并且不使用Spring事务处理。 如果您的DA

  • 我的问题是,创建一个待完成的数据表和另一个已完成的数据表是好的实践吗?或者我应该只制作一个包含两种类型数据的表,并按状态区分?

  • 我当前的项目有几个Flyway迁移,用于将初始数据导入数据库。这个数据是方便的,特别是对于开发人员能够快速设置项目。生产数据通过一些批处理作业导入,具有较新的版本。 其中有些迁移相当大(~20MB),因此每次应用程序启动时,Flyway都要花费一些时间来计算迁移的校验和。这也是集成测试的一个问题,因为它们也需要更长的时间。 null 我还有什么其他选择?如果可能的话,我希望使用Flyway而不是手

  • 我用试用密钥尝试了State/BaselineMigration功能。https://flywaydb.org/documentation/concepts/baselinemigrationsFlyWay迁移执行脚本并正确移动到正确的版本。但在此基础上运行的所有迁移都失败了 从S开始2__xxx.sql然后它在版本2的模式表中创建一行并键入"SQL_STATE_SCRIPT" 再次执行flywa

  • 我正在flyway的CMD中运行命令,但脚本文件的迁移会出现以下异常 [错误]无法执行目标组织。flywaydb:flyway maven插件:3.2.1:在convertopia auto db:org项目上迁移(默认cli)。flywaydb。果心应用程序编程接口。FlywayException:验证失败。迁移1.0.53的迁移描述不匹配[错误]- 我尝试过,它说构建成功,但问题仍然没有解决。

  • 是否可以使用指向远程服务器的Flyway位置?例如,我可以在DB服务器上安装Flyway,但在应用程序服务器上安装迁移文件吗? 我查阅了飞行路线文件,但没有找到答案。