【发布时间】:2022-07-01 02:17:27
【问题描述】:
我正在创建一个 Spring Boot 应用程序,并且正在使用 Intellij 的嵌入式 h2 数据库。
我在 application.properties 文件中添加了以下几行:
spring.datasource.url=jdbc:h2:~/testdb;MV_STORE=false;AUTO_SERVER=TRUE
虽然连接成功并且我可以使用 Intellij 的查询控制台查询数据库,但表并没有出现在“数据库”选项卡中。
Succeeded
DBMS: H2 (ver. 2.1.210 (2022-01-17))
Case sensitivity: plain=upper, delimited=exact
Driver: H2 JDBC Driver (ver. 2.1.210 (2022-01-17), JDBC4.2)
Ping: 16 ms
当我刷新连接或转到数据源配置的架构选项卡时,我收到以下错误:
[42S02][42102] org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "INFORMATION_SCHEMA_CATALOG_NAME" not found; SQL statement: select CATALOG_NAME from INFORMATION_SCHEMA.INFORMATION_SCHEMA_CATALOG_NAME [42102-210].
【问题讨论】:
-
您不能在 H2 2.0 及更高版本中使用
MV_STORE设置,使用此设置时会抛出UnsupportedOperationException。看起来某个旧版本的 H2 (1.4.*) 正在运行,这个数据库文件被它打开,新版本试图连接到那个旧版本。这就是为什么您在连接尝试时看不到UnsupportedOperationException的原因,这就是为什么您没有INFORMATION_SCHEMA_CATALOG_NAME表的原因,在不受支持的旧版 H2 中没有这样的表。 -
@EvgenijRyazanov 我将其更改为 jdbc:h2:~/testdb;AUTO_SERVER=TRUE 并且问题仍然存在。我仍然得到完全相同的错误。最初我什至没有 MV_STORE,我在尝试解决此错误时添加了它。
-
你有完整的堆栈跟踪吗?
-
Intellij 没有提供有关该错误的更多信息,我在上面提供的屏幕截图包含该程序提供的所有信息,据我所知。我不知道某处是否有一些隐藏的日志。
标签: database spring-boot intellij-idea h2