gpt4 book ai didi

playframework - H2 数据库在 playframework2 中失败

转载 作者:行者123 更新时间:2023-12-02 05:39:34 25 4
gpt4 key购买 nike

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

! @6anj14ljo - Internal server error, for request [POST /admin] ->

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[PersistenceException: Query threw SQLException:table "MANAGER" not found.

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

最佳答案

使用 h2-browser 检查数据库的状态,如果结构与异常相同:

在终端/命令行中

  1. Play
  2. h2-browser - 它将在新的浏览器窗口中打开 h2-browser
  3. ~运行
  4. 执行进化
  5. 使用 h2-browser 转到窗口并使用您在 db.default.url 中的 application.conf 中提供的相同路径进行连接>

另一方面,与您相反,我发现在开发和生产模式下使用不同的数据库可能很烦人。每个数据库引擎都有一些非常具体的事情,您需要两次解决一些问题,一次是针对 H2 - 一次是针对 MySQL。这没有意义,更糟糕的是,每次您在开发模式下重新启动应用程序时,您都需要再次用示例数据填充它以进行调试。也许在重新启动之间你忘记添加一些记录等。

虽然最后一个问题可以通过插入与Global object相同的一组测试数据来解决在 onStart() 方法中,在重启之间将测试数据保存在 MySQL 中会更舒适。

当然,如果您仍然想要/需要使用 H2,您也可以在 file mode 中使用它,方法是从url,然后它将保留在磁盘上。

关于playframework - H2 数据库在 playframework2 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11185744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com