herokuの環境変数を設定してrailsからDBにアクセスする
October 15, 2014
ruby
rails
rails4
heroku
環境変数
デプロイ
DB
herokuのデプロイ時にDB関係でよくエラーになるのでメモ。
Heroku Toolbeltをインストールする
アプリケーションの作成をする
view画面を作成しないとエラーが出るので、以下のコマンドでview画面を作成する。
$ rails g controller Top index
ルーティング先をTopControllerにする
config/routes.rb
Rails.application.routes.draw do
# get 'top/index'
root 'top#index'
end
環境変数を読み込むよう変更する
/config/database.yml
production:
adapter: postgresql
encoding: utf8
port: 5432
host: <%= ENV['DB_HOST'] %>
database: <%= ENV['DB_DATABASE'] %>
pool: 5
username: <%= ENV['DB_USERNAME'] %>
password: <%= ENV['DB_PASSWORD'] %>
timeout: 5000
/config/secrets.yml
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
$ git remote add heroku [email protected]:アプリ名.git
$ heroku login
$ heroku config
以下のように出てくる。5432はport番号。
postgres://ユーザー名:パスワード@ホスト名:5432/データベース名
以下のコマンドを入力して環境変数を設定
$ heroku config:set DB_HOST=ホスト名
$ heroku config:set DB_DATABASE=データベース名
$ heroku config:set DB_PASSWORD=パスワード
$ heroku config:set DB_USERNAME=ユーザー名
$ heroku config:set LANG=ja_JP.UTF-8
$ heroku config:set TZ=Asia/Tokyo
$ heroku config:set SECRET_KEY_BASE=secrets.ymlに書いてあった文字列
$ heroku config:set RACK_ENV=production