3

是否可以在Play控制檯中交互執行命令以更改Play應用程序的模型並查看內存數據庫中的更改?通過h2瀏覽器和控制檯與PlayFramework中的EBean模型類交互

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

,我遵循的步驟如下:

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

我也知道可以啓動控制檯並執行Scala命令。舉例來說,如果我有一個模型實體的人,我執行:

> 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上的運行並且能夠稍後打開控制檯?

回答

0

我希望你不再需要這個,但既然你的問題是我搜索同一主題時得到的第一個結果,這裏是解決方案,以防其他人需要它。

的問題是,當你啓動你不使用運行的應用程序的同一個實例,在斯卡拉控制檯使用Ebean只是第一次運行你的應用程序使用此命令控制檯:

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

這它!現在你可以導入你的Ebean模型,實例化它並玩弄它。

作戲控制檯的詳細信息和提示,我發現這個職位上https://playlatam.wordpress.com