Flyway迁移无法识别beforeValidate.sql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flyway迁移无法识别beforeValidate.sql相关的知识,希望对你有一定的参考价值。

尝试使用beforeValidate.sal回调文件进行Flyway迁移时出现以下错误:

Wrong migration name format: beforeValidate.sql(It should look like
this: 1.2__Description.)

似乎Flyway不认识到这是回调脚本的名称。

我在十二月对它进行了测试,结果正常。但是当我现在尝试时,我得到了那个错误。

更新:最后还有更多的时间来研究这个问题。此功能以前与Flyway 4.1.2一起使用。当我回滚到该版本时,事情按预期工作。它不适用于Flyway 5.0.4(我们已在代码库中升级)或最新的Flyway 5.0.7。 Flyway是否放弃了对此功能的支持,或者可能会更改未记录的内容?

更新2:将此缩小了一些。这仍然适用于Flyway 4.2.0,但在Flyway 5.0.2中不起作用。另外,请注意我们正在使用Gradle,因此使用Gradle插件失败了。我无法尝试使用Flyway 5.0.0或5.0.1,因为这些版本的Gradle插件似乎不可用。

答案

最后将问题跟踪到错误的配置。我们使用Gradle插件,并且我们没有更新设置以考虑sqlMigrationSuffixes现在是多值的。我们还在设定它

sqlMigrationSuffixes ='。sql'

什么时候应该设置为

sqlMigrationSuffixes = ['.sql']

显然,在我们的情况下这足以混淆Flyway并导致它无法识别beforeValidate.sql作为回调脚本之一。

以上是关于Flyway迁移无法识别beforeValidate.sql的主要内容,如果未能解决你的问题,请参考以下文章

Flyway Java 迁移在命令行工具中不起作用

Flyway迁移,无法从DataSource获取Jdbc连接

无法为 PostgreSQL 表应用 Flyway 迁移

无法在 Spring Boot 中将 Flyway 迁移与 postgresQL 连接起来

清洁后无法启动或迁移的flyway

无法在 Spring 应用程序中使用 Flyway 1.6 进行迁移