Playframework h2持久存储:未找到数据库

Playframework h2持久存储:未找到数据库,playframework,h2,playframework-1.x,Playframework,H2,Playframework 1.x,如果数据库不存在,H2应创建该数据库。我修改了url,将'mem'更改为'file',并将下一个参数'play'更改为一个以新名称作为后缀的路径,该名称将成为数据库。但是,我一直遇到这样的例外情况: Database error A database error occured : No database found. Check the configuration of your application. play.exceptions.DatabaseException: No datab

如果数据库不存在,H2应创建该数据库。我修改了url,将'mem'更改为'file',并将下一个参数'play'更改为一个以新名称作为后缀的路径,该名称将成为数据库。但是,我一直遇到这样的例外情况:

Database error
A database error occured : No database found. Check the configuration of your application.

play.exceptions.DatabaseException: No database found. Check the configuration of your application.
    at play.db.DB.getConnection(DB.java:65)
    at play.modules.siena.PlayConnectionManager.getConnection(PlayConnectionManager.java:16)
    at play.modules.siena.SienaPlugin.onApplicationStart(SienaPlugin.java:138)
    at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:525)
    at play.Play.start(Play.java:526)
    at play.Play.detectChanges(Play.java:630)
    at play.Invoker$Invocation.init(Invoker.java:198)
    at Invocation.HTTP Request(Play!)
Caused by: java.lang.NullPointerException
    at play.db.DB.getConnection(DB.java:58)
这是活动环境:

%h2dev.application.mode=dev
%h2dev.db.url=jdbc:h2:file:/var/stkdb/h2.db;MODE=MYSQL;LOCK_MODE=0
%h2dev.jpa.ddl=create
%h2dev.mail.smtp=mock

有什么想法吗?我也安装了GAE模块。不过这不重要…

您需要将以下行添加到
应用程序.conf

%h2dev.db.driver=org.h2.Driver
%h2dev.db.user=sa 
%h2dev.db.pass= 

正如列表中提到的,您不能在GAE上使用文件系统DB。如果您的目的是使其仅用于测试/开发,那么这可能会起作用。如果你想在GAE上部署这段代码,你将走到一条死胡同,因为你永远无法在GAE上使用H2。

我打算今天在Amazon上运行H2,将来与数据存储保持兼容。如果这在GAE中运行得更好,我们需要自动缩放。也许可以禁用GAE模块,看看这是否有帮助-您应该能够继续使用Sienna。我不确定,但它可能会影响HPA插件的加载方式。有很多代码更改,但我只是尝试了一下。。非常感谢。不走运,但很抱歉这是白费力气(最后一个可能有用的评论是——小心不要相信你可以轻松切换到GAE的数据存储,并让它以与H2类似的方式工作——H2和GAE的HRD在性能上有很多极端的差异(HRD真的很慢!),以及它们的行为方式(酸碱:)我完全同意。我首先在GAE上获得了一些经验来帮助实现这一点。此外,我正在使用DAO,因此我希望将其限制在一个层中进行更改…我只需要行%h2dev.db.driver=org.h2.driver..也许框架中有一个很好的例外。奇怪的是,h2“mem”是如何数据库工作正常,但当我将h2移动到文件系统时,需要驱动程序配置行。