くっそ初心者向けの内容で恐縮ですが、僕自身初心者なので。
あと、タイトルの表現の仕方が間違っているかもしれないけど、ご愛嬌。
どういう事かというと、今までPlayのapplication.confのDatabase設定(エンドポイント、ユーザーID、パスワード)はべた書きしていたんだよね。
でもそうすると、application.confがプライベートリポジトリー意外では管理出来なかったりで、色々まずい。
なので、Bitbucketの無料プライベートリポジトリーで管理するしか無かったんだけど、めっちゃ開発している自作アプリをGithub上で管理して、なんかContributionsを俺色(緑色)に染められなくて残念な感じがしてたんだ。
それは具合が悪いというか、そもそもHerokuのガイドラインにもそりゃー良く無いって書いてある。
じゃあどうすればいいのかって話。
実はとっても簡単。
Herokuの環境設定を整備
僕の自作アプリは、Heroku+ClearDBを利用していて、ClearDBのConfigはこんな感じになっている。
$ heroku config CLEARDB_DATABASE_URL: mysql://ユーザー名:パスワード@DBのホスト/データベース名?reconnect=true
これを元に
$ heroku config:add DATABASE_URL='mysql://ユーザー名:パスワード@DBのホスト:3306/データベース名?reconnect=true'
とかってやってあげておくと
$ heroku config DATABASE_URL: mysql://ユーザー名:パスワード@DBのホスト:3306/データベース名?reconnect=true
となる。
これでHeroku側の準備は完了。
application.confを修正
${?}で環境変数を囲むんだけど、下記の様に、HerokuにDATABASE_USERとかDATABASE_PASSWORDがHerokuのConfigに無くても大丈夫だった。※DATABASE_URLから取得するっぽい。
db.default.url=${?DATABASE_URL} db.default.user=${?DATABASE_USER} db.default.password=${?DATABASE_PASSWORD}
あとはこのapplication.confをデプロイするだけ。
ちょー簡単。
おまけ
一度pushしたファイルの履歴を削除するgitコマンド例
まあネットで調べれば幾らでも出てくる事なんだけどね。
今までapplication.confにDBのパスをべた書きしてpushしていたので、その履歴削除したいって場合の例。
$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch conf/application.conf' HEAD $ git push heroku master --force