Spring Boot连接Azure SQL Server 12.0遇Flyway不支持错误求助
解决Flyway不支持Microsoft SQL Server 12.0的问题
问题核心
错误org.flywaydb.core.api.FlywayException: Unsupported Database: Microsoft SQL Server 12.0的本质是当前使用的Flyway版本未适配SQL Server 12.0(对应SQL Server 2014),和数据库连接本身无关(本地能正常连接说明配置的数据库信息是正确的)。
具体解决方案
1. 升级Flyway核心依赖版本
Flyway 5.x及以上版本已支持SQL Server 2014,若你项目中的Flyway版本低于该范围,直接升级即可。以Maven为例,更新依赖:
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>7.15.0</version> <!-- 选择稳定的高版本,如7.x/8.x系列均可 --> </dependency>
2. 替换Hibernate方言
当前配置使用的SQLServer2008Dialect是针对SQL Server 2008的,对于SQL Server 12.0,建议替换为适配的方言:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
该方言可兼容SQL Server 2012及更高版本,避免方言不匹配带来的潜在问题。
3. 升级JDBC驱动版本
确保mssql-jdbc版本适配SQL Server 12.0,推荐使用6.4.0及以上版本:
<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>9.4.1.jre8</version> <scope>runtime</scope> </dependency>
验证操作
- 执行
mvn clean清理项目依赖,重新构建 - 启动项目,检查Flyway是否正常初始化并执行迁移脚本
- 确认Hibernate的SQL输出无方言相关错误
内容的提问来源于stack exchange,提问作者Arif
相关产品推荐
相关产品推荐

