次のようにして、scala コンソール内からアプリケーションを開始しました。
scala> import play.core.StaticApplication
scala> new StaticApplication(new java.io.File("."))
デフォルトのデータベースには進化が必要だという警告が表示されました。これらの進化を scala コンソール内から実行するにはどうすればよいですか?
次のようにして、scala コンソール内からアプリケーションを開始しました。
scala> import play.core.StaticApplication
scala> new StaticApplication(new java.io.File("."))
デフォルトのデータベースには進化が必要だという警告が表示されました。これらの進化を scala コンソール内から実行するにはどうすればよいですか?
以下を想定して、コンソールでこれを実行します"default"
。
play.api.db.evolutions.OfflineEvolutions.applyScript(new java.io.File("."), this.getClass.getClassLoader, "default")
別の方法として、Play! を開始するときに、次の方法で自動的に進化を適用させることができます。
play -DapplyEvolutions.default=true
...または上記のパラメーターを構成に追加します。
その時点で Play @mushroom のどのバージョンが使用されていたかはわかりません (おそらく Play 2.2)。コンソールで次のことを行うことで、@opyate と同じ結果を得ることができました。
import play.api._
import play.api.db._
import play.api.db.evolutions._
// Start the application (instead of using `new play.core.StaticApplication(...)`)
val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
implicit val app = loader.load(context)
// Apply the evolutions
OfflineEvolutions.applyScript(
new java.io.File("."),
this.getClass.getClassLoader,
app.injector.instanceOf[DBApi],
"default",
true
)
2.4.xのソースと2.5.x のソースがあります。2.5.x の場合、OfflineEvolutions.applyScript
追加dbName
の および (オプションで)schema
パラメータが必要であることに注意してください。
ちなみに、使えない理由はこちらnew play.core.StaticApplication(...)
で回答しています。
最速の方法は次のとおりだと思います。
play -DapplyEvolutions.default=true run
しかし、あなたは追加することができます
applyEvolutions.default=true
あなたのapplication.confにも