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 在项目中迁移数据实践