You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaEE无框架项目集成Flyway时无法找到迁移文件路径求助

Flyway警告「找不到SQL迁移路径db/migration」解决办法

问题情况

无框架JavaEE应用集成Flyway,pom.xml配置完成、数据库连接正常,但出现警告:

09-Aug-2022 16:19:22.403 WARNING [RMI TCP Connection(3)-127.0.0.1] com.googlecode.flyway.core.migration.sql.SqlMigrationResolver.resolveMigrations Unable to find path for sql migrations: db/migration

当前pom.xml相关配置:

依赖部分

<dependency>
  <groupId>com.googlecode.flyway</groupId>
  <artifactId>flyway-core</artifactId>
  <version>1.5</version>
</dependency>

Maven插件部分

<plugin>
  <groupId>com.googlecode.flyway</groupId>
  <artifactId>flyway-maven-plugin</artifactId>
  <version>1.5</version>
  <configuration>
    <user>user228</user>
    <password>user228</password>
    <driver>com.mysql.jdbc.Driver</driver>
    <url>jdbc:mysql://localhost:3306/javaee_task_db?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;connectionCollation=utf8_general_ci&amp;characterSetResults=UTF-8</url>
  </configuration>
</plugin>

解决步骤

1. 补全默认迁移目录

Flyway默认会从类路径下的db/migration目录读取SQL迁移脚本,你需要在项目的src/main/resources目录下手动创建db/migration文件夹,然后把符合命名规范的迁移脚本(比如V1__初始化_todo表.sql)放进去。

2. 显式指定迁移路径(可选)

如果你的迁移文件放在其他位置,或者默认路径识别有问题,可以在插件配置里明确指定路径:
在插件的<configuration>节点中添加:

<locations>
  <location>filesystem:src/main/resources/db/migration</location>
</locations>

如果是代码里初始化Flyway,也可以调用flyway.setLocations("filesystem:src/main/resources/db/migration")来指定。

3. 升级Flyway版本(强烈推荐)

你用的Flyway 1.5是2013年的老版本,bug多、兼容性差,建议直接升级到最新稳定版(比如10.x系列)。注意新版本的groupId已经改成org.flywaydb,配置要调整:

升级后的依赖

<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>10.15.0</version> <!-- 替换为最新版 -->
</dependency>

升级后的插件

<plugin>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-maven-plugin</artifactId>
  <version>10.15.0</version> <!-- 和依赖版本保持一致 -->
  <configuration>
    <user>user228</user>
    <password>user228</password>
    <driver>com.mysql.cj.jdbc.Driver</driver> <!-- MySQL 8+用这个驱动类 -->
    <url>jdbc:mysql://localhost:3306/javaee_task_db?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;connectionCollation=utf8_general_ci&amp;characterSetResults=UTF-8&amp;serverTimezone=UTC</url> <!-- 加时区参数避免警告 -->
  </configuration>
</plugin>

4. 检查Maven资源目录配置

确保src/main/resources是Maven的默认资源目录,这个目录下的文件会被正确打包到类路径里。如果有自定义资源配置,要确认db/migration所在目录被包含在内。


内容的提问来源于stack exchange,提问作者Matvey Androsyuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:15:05