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

Spring Boot 3中Flyway迁移脚本未找到问题求助

问题原因与解决方案

Spring Boot 3.0 默认集成 Flyway 9.x,而 Flyway 9.x 对迁移脚本的命名规则做了严格收紧,这是导致你遇到问题的核心原因:

关键变更点

Flyway 9.x 要求迁移脚本的版本号段必须仅使用下划线 _ 分隔,不能使用小数点 .。你原来的脚本名 V1.0.0_01__Init_from_ddl.sql 里的 . 会被判定为非法格式,直接被 Flyway 忽略;哪怕你尝试改成 V1_0_0__Init.sql 这类符合规则的名称,也要检查是否存在拼写错误(比如漏写下划线、多写符号等)。

解决步骤

  1. 严格修正脚本命名:把版本号里的小数点全部替换成下划线,比如将原脚本改为 V1_0_0_01__Init_from_ddl.sql,或者简化为 V1__Init.sql,确保格式完全符合 V<版本号段用下划线分隔>__<描述>.sql 的要求。
  2. 确认资源目录有效性:检查 src/main/resources/db/migration 目录在打包后是否被正确放入 classpath,Spring Boot 3 对资源目录的默认处理逻辑没变,但如果是多模块项目,要保证当前模块的资源目录配置正确。
  3. 排查依赖冲突:确保项目里没有手动引入低版本的 Flyway 依赖,Spring Boot 3.0 的 spring-boot-starter-flyway 会自动引入兼容的 Flyway 9.x 版本,手动引入旧版会导致规则不兼容。

额外排查手段

如果改完名字还是不行,开启 Flyway 的 DEBUG 日志查看扫描细节:

logging:
  level:
    org.flywaydb: DEBUG

日志里会显示 Flyway 实际扫描的路径、跳过的文件及原因,能快速定位问题。另外确认数据库连接的 schema 配置正确,Flyway 会基于指定 schema 检查迁移历史,schema 不对也可能导致识别异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:25:13