基于 State/BaselineMigration 脚本的迁移后 FlyWay 迁移出错

Posted

技术标签:

【中文标题】基于 State/BaselineMigration 脚本的迁移后 FlyWay 迁移出错【英文标题】:Error in FlyWay migration after State/BaselineMigration scripts based migration 【发布时间】:2021-11-22 20:28:14 【问题描述】:

我使用试用密钥尝试了 State/BaselineMigration 功能。 https://flywaydb.org/documentation/concepts/baselinemigrations FlyWay 迁移执行脚本并正确移动到正确的版本。但是在此之上运行的所有迁移都失败了

从 S2__xxx.sql 开始 然后它在版本 2 的模式表中创建一行并输入“SQL_STATE_SCRIPT”

当使用或不使用更多脚本(例如 V3__xxx.sql)再次执行 flyway 迁移时,它总是会产生错误

线程“主”org.flywaydb.core.api.exception.FlywayValidateException 中的异常:验证失败:迁移验证失败 检测到应用的迁移未在本地解决: 2. 如果您有意删除了此迁移,请运行修复以将迁移标记为已删除。 需要更灵活的验证规则?了解更多:https://rd.gt/3AbJUZE

设置忽略丢失的标志或模式也无济于事。 修复只有有V2_xxx.sql的文件才会解决

我尝试使用 java 的 7.x 和 8.x 版本以及使用命令行的 8.x。似乎都有这个问题。

有没有办法解决这个问题或者我违反了预期的用途?

我的意图是我们现有的设置有许多版本化脚本,比如说 10。当要执行全新安装时,使用 S10__ 而不是多个版本,但我们应该能够在 ci/cd 管道中迁移未来的版本化脚本。有了这个不能做的问题

编辑 - 8.0.0 版本已修复此问题

【问题讨论】:

很高兴修复了这个错误。此后,我们在“Flyway Hub”中构建了一个自动化测试服务,这将有助于确保您的迁移集始终有效。如果您想尝试一下,只需访问 hub.flywaydb.org - 如果这有帮助,请告诉我们! (目前适用于 SQL Server、Postgres、mysql 和 MariaDB) 【参考方案1】:

我们认为这是一个错误,将在下一个 v8 测试版中进行修复。

【讨论】:

有报告的问题吗?

以上是关于基于 State/BaselineMigration 脚本的迁移后 FlyWay 迁移出错的主要内容,如果未能解决你的问题,请参考以下文章

基于内容与基于协作的过滤?

为啥 Kafka 是基于拉的而不是基于推的?

推荐算法简介:基于用户的协同过滤基于物品的协同过滤基于内容的推荐

依存句法分析:基于图的依存句法分析基于转移的依存句法分析基于神经网络的依存句法分析

基于项目和基于内容的协同过滤有啥区别?

事件处理:基于功能的组件与基于类的组件