Playframework 使用h2浏览器访问播放项目数据库

Playframework 使用h2浏览器访问播放项目数据库,playframework,playframework-2.0,h2,Playframework,Playframework 2.0,H2,我在通过Play框架项目上的h2浏览器访问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="" 在mem数据

我在通过
Play
框架项目上的
h2浏览器访问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=""

在mem数据库中使用时,实际上是在访问两个不同的数据库(尽管路径相同)。您有两种解决方案:

  • 首先从您的控制台启动“播放”控制台,运行h2浏览器,最后运行您的应用程序(使用相同的
    play
    console)
  • 运行H2,这种方法的另一个好处是,当DB存储在文件中时,您不会在每次应用程序重新启动时丢失数据。然后,您可以从多个点(也可以从“独立”H@浏览器或其他GUI)访问此数据库,路径类似于:
  • Unix(
    ~
    表示您的主目录)

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

    或窗户

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


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

    要通过浏览数据库内容,请通过相同的播放控制台启动web控制台和播放应用程序:

  • 首先,通过运行类型安全激活器进入游戏控制台:
    ~/Projects/Play app$Activator
  • 启动web控制台:
    [play app]$h2浏览器

    这将在浏览器中打开H2控制台界面
  • 运行播放应用程序:
    [Play app]$Run
  • 在浏览器中访问Play应用程序。这将导致播放应用程序连接到内存中的H2数据库,并使用一些默认数据(如果有的话)对其进行初始化
  • 登录浏览器中的H2 web控制台以检查数据库内容。使用您可以保存的以下设置(例如,作为
    Play App In Memory Database
    )以方便以后再次访问它们:
    • 驱动程序类:
      org.h2.Driver
    • JDBC URL:
      JDBC:h2:mem:play
    • 用户名:
      sa
    • 密码:

  • 请注意,上面的设置必须与您的实际配置相匹配(
    db.default.url
    等等)。

    我尝试了您的解决方案1,但表仍然没有显示出来。因此,这个问题的实际答案是使用解决方案2?@nemoo-刚刚用全新的Play 2.2.0测试过-第一种方法按要求工作,但我也尝试了解决方案1,并且遇到了相同的问题。我启动游戏控制台,运行h2浏览器,登录h2浏览器web屏幕。然后使用相同的控制台,我运行“run”。当访问我的网站时,我得到“无法连接到数据库[默认]”。我错过什么了吗?连接字符串是“jdbc:h2:mem:play”,我使用的是play2.2。1@according2me运行h2浏览器,不要登录数据库,“运行”您的应用程序,在浏览器上访问您的应用程序“…”,您可能需要升级/创建数据库,然后,最后登录h2浏览器web屏幕。解决方案1非常完美,适用于最新的Play 2.4,谢谢