我有Rails體驗,但我是Scala/Play新手。 我正在構建一個簡單的Play應用程序。它自然有一個內置的Web UI。Play框架2.12;作爲生產的一部分運行CLI作業
我需要的一件事是一個簡單的管理CLI工具。它需要能夠在生產環境中運行,以執行各種任務,例如導入用戶名。這可能類似於Rails Rake, ,因爲代碼可以利用大部分Play應用程序堆棧。它需要能夠使用Play應用程序中定義的數據庫。
我試着創建一個自定義的sbt任務,但它沒有訪問 運行時間播放應用程序。例子:
Ex。 Build.scala
val sample_tsk = TaskKey[Unit]("sample_tsk", "Prints 'Hello World'")
val sampleTask = sample_tsk := {
println("Hello World2")
// this doesn't work.
import play.api.db._
import play.api.Play.current
println("About to get connection...")
val conn = DB.getConnection()
}
我無法使用這種技術訪問數據庫。我想這是因爲這個工具並不真正瞭解這個應用程序。
可以指向正確的方向嗎?
「因此,在構建定義的任務中訪問它會很奇怪」 - 我完全同意;這聞起來不好:( – seand
我比較這一點與Rails,你可以有一個。rb腳本通過簡單地調用require_relative'../config/environment'來加載Rails堆棧。也許這不僅僅是實際的做到這一點。 – seand
我在這裏問了一個非常類似的問題:http://stackoverflow.com/questions/17954154/use-sbt-to-launch-an-applicative-task-batch因爲我需要這樣的東西。我認爲它可以正常工作 –