使用h2-browser访问播放项目数据库

时间:2013-04-13 15:02:42

标签: playframework playframework-2.0 h2

我在通过h2-browser框架项目上的Play访问mem数据库时遇到了一些麻烦。

使用下面的配置,我认为是正确的(显然不是!)我正在获得一个h2浏览器,但没有表(除了模式之外),即使我已经应用了一些迁移。

我在这里缺少什么?提前谢谢。

CONF / application.conf:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password=""

conf

2 个答案:

答案 0 :(得分:24)

当您实际使用内存数据库时,您正在访问两个不同的数据库(尽管路径相同)。你有两个解决方案:

  1. 首先从您的控制台启动裸'play'控制台,运行h2-browser并最终运行您的应用程序(在同一个play控制台内)
  2. server mode中运行H2,这种方法的额外好处是,在每个应用重启时,您不会因为DB存储在文件中而丢失数据。然后,您可以从许多点(也可以从'独立的'H @浏览器或其他GUI)访问此数据库,其路径类似于:
  3. Unix(~表示您的主目录)

    db.default.url="jdbc:h2:tcp://localhost/~/some/path/to/MyPlayDB"

    或Windows

    db.default.url="jdbc:h2:tcp://localhost/c:/some/path/to/MyPlayDB"

    请注意,为了在生产模式下获得最佳性能,值得切换回嵌入模式,但对于开发阶段,解决方案应该足够好(仍然比MySQL示例更快)

答案 1 :(得分:18)

要通过H2 Web Console浏览数据库的内容,请通过相同的 Play控制台启动Web控制台和Play应用程序:

  1. 首先,通过运行Typesafe Activator进入Play控制台:
    ~/Projects/play-app $ activator
  2. 启动网络控制台:
    [play-app] $ h2-browser
    这应该在您的浏览器中打开H2控制台界面。
  3. 运行Play应用:
    [play-app] $ run
  4. 在浏览器中访问Play应用。这将导致Play应用程序连接到内存中的H2数据库,并使用一些默认数据(如果有)初始化它。
  5. 登录浏览器中的H2 Web控制台以检查数据库内容。使用以下可以保存的设置(例如,Play-App In-Memory Database)以便以后再次轻松访问它们:
    • 驱动程序类:org.h2.Driver
    • JDBC网址:jdbc:h2:mem:play
    • 用户名:sa
    • 密码:<blank>
  6. 请注意,上述设置必须与您的实际配置相匹配(db.default.url等)。