H2数据库在playframework2中失败

Ale*_*var 2 h2 playframework playframework-2.0

我使用play 2.0.1开发小应用程序,并使用内部H2数据库找到非常有用的用于进行客户预览.数据库中只有几行,一个或两个用户.在我的笔记本电脑中编译应用程序并在测试服务器上部署tar是非常舒服的.但看起来H2不时下降.我在application.log中找到了这个:

!@ 6anj14ljo - 内部服务器错误,请求[POST/admin] - >

play.core.ActionInvoker $$ anonfun $ receive $ 1 $$ anon $ 1:执行异常[[PersistenceException:Query抛出SQLException:表"MANAGER"未找到.

我知道使用H2进行生产并不是一个好主意.但我不想每次都配置mysql.这种H2行为的原因是什么?

bie*_*ior 5

使用h2-browser来检查数据库的状态,如果结构是一样的除外:

在终端/命令行中

  1. play
  2. h2-browser- 它将h2-browser在新的浏览器窗口中打开
  3. ~run
  4. 进行演变
  5. 进入该窗口h2-browser,当你给了在使用相同的路径连接application.confdb.default.url

另一方面,我发现,对你来说,在开发和生产模式下使用不同的数据库可能很烦人.每个数据库引擎都有一些特定的东西,你需要解决一些问题两次,一次用于H2- 稍后MySQL.这没有任何意义,每次在开发模式下重新启动应用程序时,更糟糕的是,您需要再次使用示例数据填充它以进行调试.也许在重启之间你忘了添加一些记录等.

虽然最后一个问题可以通过将同一组测试数据来解决全局对象onStart()方法,它仅仅是更舒适,以保持测试数据在MySQL重启之间.

当然,如果您仍然需要/需要使用,H2您也可以file mode通过mem从URL中删除段来使用它,然后它将保留在磁盘上.