Flyway 未接收 Java 迁移

Posted

技术标签:

【中文标题】Flyway 未接收 Java 迁移【英文标题】:Java Migrations not being picked up by Flyway 【发布时间】:2017-12-23 20:57:36 【问题描述】:

我正在尝试使用 Flyway 运行我的数据库迁移脚本。我有两个 SQL 脚本和一个试图运行的 Java 脚本。当我运行 ./gradlew flywayMigrate 或 gradle flywayMigrate 时,它​​只会选择 SQL 脚本,而不是 Java 脚本。 我的项目设置如下:

database_migrations --->源 -------->主/java --------->数据库/迁移 -------------V3__load_data.java -------->主要/资源 --------->数据库/迁移 -------------V1__base_table.sql -------------V2__stored_procedures.sql

我尝试了多种解决方案来运行 java 脚本,例如指定 flyway.locations=classpath:db/migration,但这只会导致此输出 Unable to resolve location classpath:db/migration。我曾尝试将其移至其他软件包。我试过把它放在一个罐子里并从命令行工具运行,但它没有把它捡起来。我已经尝试过 JDBCMigration 和 SpringJDBCMigration 类。 我是否遗漏了它应该如何运行的东西?

当我在我的 jenkins 实例中使用 gradlew compileJava 运行它时,它会抛出找不到 tools.jar,不确定这是否相关

【问题讨论】:

【参考方案1】:

我解决了我的问题。我发现问题是我的 java_home 没有指向任何地方。一旦我设置了我的代码已编译,但 java 迁移仍然没有被选中。我将-Dflyway.locations=classpath:db.migrations 添加到我的 gradle 语句的末尾,它立即将其拾起!希望这可以帮助其他有需要的人!

【讨论】:

以上是关于Flyway 未接收 Java 迁移的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 应用程序在启动时未运行 Flyway 迁移

Java基础学习总结(183)—— Flyway 在项目中迁移数据实践

Java基础学习总结(183)—— Flyway 在项目中迁移数据实践

检测到的已解决迁移未应用于 flyway 上的数据库

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

Flyway作业未执行命令