10

ScalaのPlay 2.0チュートリアルに従っています

Heroku でプッシュして実行するまでは、すべて正常に動作します。「git push heroku master」を実行すると、サーバーがクラッシュします。ログを確認すると、次のように表示されます。

Starting process with command `target/start -Dhttp.port=37849 -Xmx384m -Xss512k -XX:+UseCompressedOops`
2012-08-13T06:52:45+00:00 app[web.1]: Play server process ID is 2
2012-08-13T06:52:46+00:00 app[web.1]: [info] play - database [default] connected at jdbc:h2:mem:play
2012-08-13T06:52:46+00:00 app[web.1]: [warn] play - Your production database [default] needs evolutions! 
2012-08-13T06:52:46+00:00 app[web.1]: 
2012-08-13T06:52:46+00:00 app[web.1]: CREATE SEQUENCE task_id_seq;
2012-08-13T06:52:46+00:00 app[web.1]: label varchar(255)
2012-08-13T06:52:46+00:00 app[web.1]: CREATE TABLE task (
2012-08-13T06:52:46+00:00 app[web.1]: id integer NOT NULL DEFAULT nextval('task_id_seq'),
2012-08-13T06:52:46+00:00 app[web.1]: );
2012-08-13T06:52:46+00:00 app[web.1]: 
2012-08-13T06:52:46+00:00 app[web.1]: # --- Rev:1,Ups - c5e3eee
2012-08-13T06:52:46+00:00 app[web.1]: [warn] play - Run with -DapplyEvolutions.default=true if you want to run them automatically (be careful)
2012-08-13T06:52:46+00:00 app[web.1]: Oops, cannot start the server.
2012-08-13T06:52:46+00:00 app[web.1]: PlayException: Database 'default' needs evolution! [An SQL script need to be run on your database.]
2012-08-13T06:52:46+00:00 app[web.1]:   at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:422)

何かご意見は?

4

3 に答える 3

16

埋め込み DB または PostgreSQL を使用する場合、Play は手動で進化を適用することをサポートしていません...

ただし、エラー メッセージにあるように、application.conf ファイルで構成キーを有効にすることができます。 applyEvolutions.default=true

有効にすると Play はすべての進化を自動的に適用します!

ただし、更新スクリプトには注意してください...すべての増分バージョンを削除して再作成すると、すべてのデータが失われます!

于 2012-08-13T19:32:08.347 に答える
3

andy の解決策に代わる方法は、heroku procfileに以下を追加することです。

web: target/start -Dhttp.port=${PORT} -DapplyEvolutions.default=true
  -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=$DATABASE_URL

($PORT と $DATABASE_URL は、Heroku 側の環境変数によって設定されます)

于 2013-08-21T01:29:21.697 に答える
-6

データベースが必要です。herokuには無料のアドオンがあります

于 2012-08-13T07:37:48.903 に答える