私はPlayアプリケーションがテスト、ローカル、およびプロダクション(プロダクションはHeroku)環境で異なるデータベースを使用したいと思っています。 application.conf
でPlay 2.0で環境ごとに異なるデータベースを設定するにはどうすればよいですか?
私が持っている:
db.default.driver=org.postgresql.Driver
%dev.db.default.url="jdbc:postgresql://localhost/foobar"
%test.db.default.url="jdbc:postgresql://localhost/foobar-test"
%prod.db.default.url=${DATABASE_URL}
は、これが動作するようには思えません。私はこのことについていくつか質問してい
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
::私はplay test
またはplay run
、 すべてのDBへのアクセスに失敗したを実行すると、一般的に
を、私は、データベースの構成方法について少し困惑していますプレー中の :プレーンなのは
db
,db.[DBNAME]
、db. [DBNAME].url
のように見えますが、チュートリアルの違いによって、 の中からさまざまな選択肢があります。特定の表現がうまくいくように見えます(例:db.default.url = "jdbc:..."
は、オブジェクトが必要な場所に文字列が入力されたというエラーで失敗します)。私が見てきた他の人は、私は、それぞれが
application.conf
が含まれ、別prod.conf
、dev.conf
とtest.conf
ファイルを作成し、DB固有の設定が含まれていることを示唆しています。しかしその場合、Playコンソールからtest
を実行したときに使用するデータベースを指定するにはどうすればよいですか?%env
の構文はPlay 2で動作するはずですか?play test
で使用する環境を指定する正しい方法は何ですか?
うーん、理にかなっている - ので、それらの ' %prod'のヒントはPlay 1.xのものでしたか?例をありがとう。私は実際にこの時点でdev/prod設定の問題を解決しました。私の残りの質問はまだあります:テストスイートを実行するときにPlayが別の環境を使用するように設定するにはどうすればいいですか? – Bill
はい、 '%prod'はPlay 1.xのみです。テストを実行するときにも同じことができるはずです: 'play -Dsetting = foo〜test' –
それは本当ですが、非常にエラーが起きやすいようです。私が設定ファイル名を残しておけば、 )テストスイートは私のdevデータベースに対して実行されます。これを行う別の方法はありませんか? Play 1からのプロットアプローチは十分ではないようですが、なぜそれがもう利用できないのかはわかりません。 – Bill