SpringBoot集成Flyway报Unsupported Database: MySQL 8.0如何解决
问题原因
Flyway 8.0及以上版本对依赖做了模块化拆分,核心包flyway-core不再内置各数据库的适配实现,MySQL的适配逻辑被独立拆分到flyway-mysql依赖包中。当前配置仅引入了flyway-core 8.5.13,缺少MySQL专属适配依赖,因此无法识别MySQL 8.0版本,抛出不支持数据库的异常。
解决方法
- 在Gradle依赖配置中补充
flyway-mysql依赖,版本需和已引入的flyway-core版本完全一致,修改后的依赖配置如下:
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.29' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.7.0' implementation group: 'org.flywaydb', name: 'flyway-core', version: '8.5.13' // 新增Flyway对MySQL的适配依赖 implementation group: 'org.flywaydb', name: 'flyway-mysql', version: '8.5.13' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
- 修正配置文件中的Flyway开关:当前配置
spring.flyway.enabled=false为关闭Flyway的状态,要正常启用数据库迁移需要将该值改为true,修正后的Flyway配置如下:
# flyway spring.flyway.baseline-on-migrate=true spring.flyway.enabled=true spring.flyway.locations=classpath:db/migration
- 同步Gradle依赖后重启应用,异常即可解决。
内容的提问来源于stack exchange,提问作者Sandeep Patel
相关产品推荐
相关产品推荐

