Play!を使用してOSX(Lion 10.7.4)でローカルPostgreSQL9.1を使用する最初のWebアプリケーションを開発しました。フレームワーク2.0.3。conf / application.conf(アプリケーションのディレクトリに対して)で定義されたデータベース接続から始めました。
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/fotoplay"
db.default.user=foo
db.default.password=bar
(投稿前にユーザー名とパスワードが変更されています)これは書き込みとテストに使用できます。Herokuにデプロイしたいと思います。Procfile(アプリケーションのディレクトリ内)を1行で設定しました。
web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}
-DapplyEvolutions.default=false
-Ddb.default.driver=org.postgresql.Driver
-Ddb.default.url=$DATABASE_URL
システムコマンドラインで$DATABASE_URLをエコーして取得できるように、DATABASE_URLを.bash_profileにエクスポートしました。
postgres://foo:bar@localhost/photoplay
Herokuで、postgresqlのインスタンスをセットアップしました。herokuにデータを入力するためのデータベースの進化を作成する方法がわからないため、evolutionをオフにして、データベースに手動でデータを入力しました。私の現在の進化はテーブルを構築し、いくつかのcsvファイルからの初期データをそれらに入力するので、Herokuにアクセスできる場所にcsvファイルを配置する必要があります。少なくとも最初のパスでは、まだこの問題に取り組みたくありません。しかし、手動の手順の結果として、Herokuにデータベースが作成されました。
この構成では、アプリケーションはローカルで正しく実行されます。しかし、私はDATABASE_URLを使用していません。これは間違っているようです。これをHEROKUにプッシュしましたが、データベースに接続できません。エラーは次のとおりです。
Caused by: org.postgresql.util.PSQLException:
FATAL: password authentication failed for user "foo"
ユーザー名とパスワードを削除すると、ローカル構成が壊れます。古い構文の代わりにDATABASE_URLを使用できるはずですが、その方法がよくわかりません。私はこれを実験的に理解できるとは思いません(高次元の空間をさまようことは絶望的であり、関係する可能性があり、タイプミスの対象となる可能性のある構成設定がいくつかあります)。application.confの設定方法に関するガイダンスをいただければ幸いです。