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

Spring Boot 3.3.0搭配PostgreSQL 16时Flyway连接失败如何解决?

Spring Boot 3.3.0 + Flyway 连接 PostgreSQL 16 解决办法

报错原因

Spring Boot 3.3.0默认集成的Flyway版本(多为9.x系列)不支持PostgreSQL 16.x版本,导致数据库类型识别失败,抛出Unsupported Database异常。

解决步骤

1. 升级Flyway至支持PostgreSQL 16的版本

Flyway从10.0.0版本开始正式支持PostgreSQL 16,需在项目依赖配置中手动指定更高版本,覆盖Spring Boot默认的Flyway版本:

Maven(pom.xml)配置

<properties>
    <flyway.version>10.15.0</flyway.version> <!-- 选择最新稳定的10.x版本即可 -->
</properties>

Gradle(build.gradle)配置

ext {
    set('flywayVersion', '10.15.0')
}

2. 确认PostgreSQL驱动版本兼容性

Spring Boot 3.3.0默认的postgresql驱动版本为42.7.3,完全支持PostgreSQL 16,无需额外修改。若你手动指定过驱动版本,确保版本不低于42.6.0(该版本开始支持PostgreSQL 16)。

3. 检查数据库连接配置

确认application.properties或application.yml中的连接信息无误:

application.properties示例

spring.datasource.url=jdbc:postgresql://localhost:5432/你的数据库名
spring.datasource.username=你的用户名
spring.datasource.password=你的密码
spring.flyway.enabled=true
spring.flyway.url=${spring.datasource.url}
spring.flyway.user=${spring.datasource.username}
spring.flyway.password=${spring.datasource.password}

application.yml示例

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/你的数据库名
    username: 你的用户名
    password: 你的密码
  flyway:
    enabled: true
    url: ${spring.datasource.url}
    user: ${spring.datasource.username}
    password: ${spring.datasource.password}

4. 清理旧迁移记录并重新执行(可选)

若存在Flyway元数据残留问题,可先清空flyway_schema_history表(注意:此操作会删除所有迁移记录,需谨慎执行),再重新执行迁移:

Maven命令:

mvn flyway:clean flyway:migrate

Gradle命令:

./gradlew flywayClean flywayMigrate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:00:07