2015/06/22 01:44
|
【BLOG作成】herokuを使う時のつまづきポイントまとめ
|
### 1.heroku環境でDBと接続できない
【事象】以下のエラーがheroku logs上で継続的に発生し、ページヘのアクセスが出来ない。
``` bash
2015-06-21T16:06:37.020048+00:00 app[web.1]:
/app/config/initializers/after_initialize.rb:8:in
`block (2 levels) in <top (required)>': undefined method `[]=' for nil:NilClass (NoMethodError)
```
どうやら、after_initialize.rbの以下の行の処理を上手く実行できていないらしい。
``` bash
config = Rails.application.config.database_configuration[Rails.env]
```
この原因は、heroku環境でdatabase.ymlが上手く参照できていないことにある。
そもそも、github上に生パスワードが書かれたdatabase.ymlを上げるのもどうかと思うし、どのように機密情報をherokuと共有してよいかわからなかった。
そこで 以下のページを参考に、環境変数の登録を活用した情報を管理を実施し、herokua appとaws s3のDB環境との疎通が確認できた後、heroku環境を復活させることが出来た。
[秘密の値をローカル、Travis、Herokuで扱うには(by QIta)](http://qiita.com/shoma2da/items/eacd851ee85e23b5f027)
``` c
production:
<<: *default
host: <%= ENV['HEROKU_BLOG_HOST'] %>
database: <%= ENV['HEROKU_BLOG_DB'] %>
username: <%= ENV['HEROKU_BLOG_USER'] %>
password: <%= ENV['HEROKU_BLOG_PASSWD'] %>
```
### 2.master以外のbranchをherokuでrunするには
現在作成中のアプリはmasterではないbranchを別に作成して開発をしているが、herokuでこのbranchのテストをしたいなーと云う時の操作がわかりませんでした。
以下の操作で解決
``` bash
$ git checkout production-heroku
$ git merge master
$ git push heroku production-heroku:master
$ git checkout master
```
[参考](http://sample.org.uk/blog/post/heroku_deployment_branch)