基于 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 迁移出错的主要内容,如果未能解决你的问题,请参考以下文章
推荐算法简介:基于用户的协同过滤基于物品的协同过滤基于内容的推荐