Flyway 迁移无法识别 beforeValidate.sql
Posted
技术标签:
【中文标题】Flyway 迁移无法识别 beforeValidate.sql【英文标题】:Flyway migration not recognizing beforeValidate.sql 【发布时间】:2018-06-27 21:22:46 【问题描述】:尝试使用 beforeValidate.sal 回调文件进行 Flyway 迁移时出现以下错误:
Wrong migration name format: beforeValidate.sql(It should look like
this: 1.2__Description.)
Flyway 似乎无法识别这是回调脚本的名称。
我在去年 12 月对此进行了测试,它运行良好。但是当我现在尝试时,我得到了那个错误。
更新:终于有更多的时间来研究这个。此功能以前适用于 Flyway 4.1.2。当我回滚到那个版本时,事情会按预期工作。它不适用于 Flyway 5.0.4(我们已在代码库中升级到)或最新的 Flyway 5.0.7。 Flyway 是否放弃了对该功能的支持,或者可能更改了一些未记录的内容?
UPDATE2:进一步缩小了范围。这在 Flyway 4.2.0 中仍然有效,但在 Flyway 5.0.2 中不起作用。另外,请注意我们使用的是 Gradle,因此使用 Gradle 插件会失败。我无法尝试使用 Flyway 5.0.0 或 5.0.1,因为这些版本的 Gradle 插件似乎不可用。
【问题讨论】:
【参考方案1】:最终将问题归结为配置错误。我们使用 Gradle 插件,并且我们没有更新设置以说明 sqlMigrationSuffixes 现在是多值的。我们仍在将其设置为
sqlMigrationSuffixes = '.sql'
什么时候应该设置为
sqlMigrationSuffixes = ['.sql']
显然,在我们的案例中,这足以混淆 Flyway 并导致它无法将 beforeValidate.sql 识别为回调脚本之一。
【讨论】:
以上是关于Flyway 迁移无法识别 beforeValidate.sql的主要内容,如果未能解决你的问题,请参考以下文章
Flyway迁移,无法从DataSource获取Jdbc连接