簡體   English   中英

通過h2-browser和console與PlayFramework中的EBean Model類進行交互

[英]Interact with EBean Model classes in PlayFramework through h2-browser and console

是否可以在Play控制台中交互式執行命令以更改Play應用程序的模型並查看內存數據庫中的更改?

我知道可以通過Play應用程序中的h2-browser命令瀏覽內存數據庫。

我遵循的步驟是:

  • 啟動play控制台
  • 執行h2-browser
  • 執行run
  • 轉到http://localhost:9000刷新應用程序並啟動數據庫
  • 轉到http://192.168.56.1:8082/以連接到數據庫

我也知道可以啟動控制台並執行Scala命令。 例如,如果我有一個模型實體Person,我執行:

> play console
...
scala> import Models.Person
scala> val john = new Person("john")
scala> john.save()

它引發了一個例外:

    avax.persistence.PersistenceException: The default EbeanServer has not been defined? This is normally set via the ebean.datasource.default property. Otherwise it should
 be registered programatically via registerServer()
       at com.avaje.ebean.Ebean$ServerManager.getPrimaryServer(Ebean.java:178)
       at com.avaje.ebean.Ebean$ServerManager.access$300(Ebean.java:128)
       at com.avaje.ebean.Ebean.save(Ebean.java:453)
       at play.db.ebean.Model.save(Model.java:91)
...

我認為原因是它正在使用不同的Play應用程序...是否可以引用在另一個窗口上運行的應用程序? 或者在后台執行Play運行並稍后可以打開控制台?

我希望你不再需要這個了,但是因為你的問題是我在搜索相同主題時得到的第一個結果之一,所以這是解決方案,萬一其他人需要它。

問題是,當您啟動控制台時,您沒有使用正在運行的應用程序的相同實例,要在scala控制台中使用Ebean,只需使用以下命令運行您的應用程序:

scala> import play.core._
scala> new StaticApplication(new java.io.File("."))

而已! 現在您可以導入您的Ebean模型,實例化它並使用它。

有關Play控制台的更多信息和提示,我在https://playlatam.wordpress.com上發現了這篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM