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

Spring Boot集成测试H2数据库报错:Schema 'cc'未找到求助

解决Spring Boot集成测试中H2数据库Schema未找到问题

核心问题原因

Hikari连接池初始化时会优先尝试设置spring.datasource.hikari.schema=cc,但此时src/test/resources/schema.sql中的创建语句还未执行(Spring Boot的SQL脚本执行在连接池初始化之后),导致连接池找不到目标Schema报错。

解决方案

1. 修改H2数据库URL,提前创建并指定默认Schema

将src/test/resources/application.properties中的数据库URL修改为:

spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS cc\\;SET SCHEMA cc

注意:分号需要用\\转义,避免Spring将URL拆分为多个配置项。

2. 移除Hikari的Schema配置

删除application.properties中的以下配置:

spring.datasource.hikari.schema=cc

因为已经在URL中通过SET SCHEMA cc指定了默认Schema,无需重复配置。

3. 保留schema.sql中的语句(可选)

可以保留src/test/resources/schema.sql中的CREATE SCHEMA IF NOT EXISTS cc;,即使重复执行也不会有问题,IF NOT EXISTS会自动跳过已存在的Schema创建。

验证测试

修改配置后重新运行集成测试,H2会在连接初始化阶段就创建并切换到cc Schema,后续schema.sql和测试代码都能正常访问该Schema,不会再出现"Schema 'cc' not found"的错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:07:42