1

デフォルトのメモリ内 h2 データベースを使用して、ローカルでアプリケーションを開発しました。すべてが完璧に機能します。

ここで、Heroku にプッシュしてアプリをデプロイしようとしました。

その前に、次の行でアプリのルート フォルダーに Procfile を追加しました。

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

私のapplication.confは次のようになります:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;MODE=PostgreSQL"

だから私はそれをプッシュし、アプリにアクセスしようとすると次のようになります:

Salieri:addressManager administrator$ heroku ps
=== web (1X): `target/start -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.url=${DATABASE_URL} -Ddb.default.driver=org.postgresql.Driver`
web.1: crashed 2013/06/27 22:04:16 (~ 4m ago)

そしてherokuログで:

2013-06-27T20:04:14.511136+00:00 app[web.1]: [error] play - ERROR: syntax error at or near "user"
2013-06-27T20:04:14.515578+00:00 app[web.1]: at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:334)
2013-06-27T20:04:14.515153+00:00 app[web.1]: @6emdb57b1: Database 'default' is in inconsistent state!

私はdb全体を削除しようとしました

heroku pg:reset HEROKU_POSTGRESQL_ROSE_URL

その後、もう一度プッシュしましたが、成功しませんでした。

以前にプッシュを行ったことに言及する必要があります。そのとき、私のアプリは Heroku で実行されていました。唯一の問題は、フィクスチャ (アプリの起動時にジョブを含む Global.java ファイル) で提供された資格情報でログインできなかったことです。

助言がありますか?

4

2 に答える 2

0

このエラーから:

ERROR: syntax error at or near "user"

あなたの進化スクリプトが間違っていると思います。Userは SQL の予約語です。Evolution スクリプトを dev PostgreSQL データベースでローカルに実行してみてください。作業が完了したら、再度展開を試みることができます。

また、本番アプリの進化を無効にすることをお勧めします。これは危険なシステムである場合があります。

于 2013-06-28T14:19:49.340 に答える