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

Flyway是否支持Yugabyte JDBC Smart Driver?启动报错求助

Flyway对Yugabyte JDBC Smart Driver的支持问题

我谷歌搜了大量资料都没找到答案,想确认Flyway是否支持Yugabyte JDBC Smart Driver(jdbc-yugabytedb)。启动Spring Boot应用时碰到了这个错误:

Caused by: org.flywaydb.core.api.FlywayException: No database found to handle jdbc:yugabytedb://127.0.0.1:5433/dw_disputes
at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForUrl(DatabaseTypeRegister.java:54)

配置信息

数据源配置

spring.datasource.url=jdbc:yugabytedb://127.0.0.1:5433/dw_disputes
spring.datasource.driverClassName=com.yugabyte.Driver

Flyway使用与上述完全相同的数据源配置。

Maven依赖

<dependency>
    <groupId>com.yugabyte</groupId>
    <artifactId>jdbc-yugabytedb</artifactId>
    <version>42.3.5-yb-4</version>
</dependency>
<dependency>
    <artifactId>flyway-core</artifactId>
    <groupId>org.flywaydb</groupId>
    <version>10.7.1</version>
</dependency>
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-database-yugabytedb</artifactId>
    <version>10.7.0</version>
</dependency>

调试时发现Flyway的数据库类型注册器无法识别jdbc:yugabytedb协议。


解决方案

Flyway是支持Yugabyte JDBC Smart Driver的,你遇到的问题核心是依赖版本不匹配:

  • Flyway Core版本为10.7.1,但Yugabyte适配依赖flyway-database-yugabytedb版本是10.7.0,版本不一致会导致驱动识别逻辑不兼容。
  • Yugabyte JDBC Driver基于PostgreSQL驱动修改,也可临时用PostgreSQL适配驱动替代,但更推荐保持版本一致。

具体修复步骤:

  1. 同步flyway-database-yugabytedb版本与Flyway Core一致:
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-database-yugabytedb</artifactId>
    <version>10.7.1</version>
</dependency>
  1. 确保Spring Boot自动配置能加载Flyway的Yugabyte适配类,无需额外配置驱动识别规则。
  2. 若问题仍存在,可显式指定Flyway数据库类型:
spring.flyway.database=org.flywaydb.database.yugabytedb.YugabyteDBDatabaseType

另外,你的JDBC URL格式符合Yugabyte规范(jdbc:yugabytedb://<host>:<port>/<dbname>),无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:33:34