内省 H2 内存数据库

Posted

技术标签:

【中文标题】内省 H2 内存数据库【英文标题】:Introspect in-memory H2 Database 【发布时间】:2015-02-25 14:57:30 【问题描述】:

My Play 应用在开发或测试模式下运行时使用 H2 内存数据库。当应用程序在开发模式下运行时,我想访问这个数据库。所以我有以下选择

1) 以嵌入式/混合模式运行数据库。并让play框架将数据库暴露给其他进程。

2) 在 H2 数据库中以服务器模式运行(最不喜欢)。但在这种情况下,框架应该启动数据库服务器守护进程(而不是手动)。

我当前的 application.conf 文件如下所示。

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:dev;MODE=mysql;DB_CLOSE_DELAY=-1;"
db.default.jndiName=dev

【问题讨论】:

如果它可以帮助你,请检查这个旧答案:***.com/a/15992638/1066240 我对方法 1 的初始测试没有成功。数据库是空的,并且没有执行进化脚本中提到的表。但是这些表格在应用程序中可用。我会再试一次。 @biesior 谢谢,更新 jdbc url 后,我能够连接到数据库。 BTW play 在嵌入模式或混合模式下运行 H2? 【参考方案1】:

从您的终端使用activator cmd 运行Play 的控制台,在其中运行h2-browser cmd 以在浏览器中打开控制台,最后使用run cmd 运行您的应用程序(在同一个Play 控制台中)。

确保您在两个地方使用相同的凭据(尤其是 JDBC URL)。

AFAIK 它使用嵌入式模式(因此需要在一个进程中同时启动)

(origin)

【讨论】:

以上是关于内省 H2 内存数据库的主要内容,如果未能解决你的问题,请参考以下文章

内存模式下的H2数据库无法被Console访问

H2 内存数据库和自定义 @GenericGenerator 策略

如何关闭 h2 内存数据库?

如何使用 H2 内存数据库保存数据?

在同一应用程序中使用内存中的 H2 和 H2 文件

内存数据库spring-boot中的h2