我在 Play 2 应用程序中使用默认数据库:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
我认为这个数据库应该在内存中,并且数据会在应用程序运行之间消失,但即使在我关闭应用程序之后,数据似乎仍然存在于某个地方。
持久化的数据在哪里,如何清理数据库?
我在 Play 2 应用程序中使用默认数据库:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
我认为这个数据库应该在内存中,并且数据会在应用程序运行之间消失,但即使在我关闭应用程序之后,数据似乎仍然存在于某个地方。
持久化的数据在哪里,如何清理数据库?
作为对您的评论的回应,控制台中的 Ctrl-D 不会终止 Play 应用程序;它在后台运行应用程序并使控制台再次可用(这就是关闭控制台不会终止应用程序的原因)。我不确定非 Linux 操作系统,但在 Linux 中,您需要在控制台或kill <pid>
另一个控制台中使用 ctrl-C 来终止 Play 应用程序。
根据h2网站:
默认情况下,关闭与数据库的最后一个连接会关闭数据库。对于内存数据库,这意味着内容丢失。要保持数据库打开,请将 ;DB_CLOSE_DELAY=-1 添加到数据库 URL。要在虚拟机处于活动状态时保留内存数据库的内容,请使用 jdbc:h2:mem:test;DB_CLOSE_DELAY=-1。
这可能与您的数据库有多个连接。