nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

Rails 4.2 で Heroku にデプロイしたメモ

はじめに

  • Rails 4.2 で開発していたアプリを Heroku にデプロイした時にやったことメモ

環境

Heroku にユーザー登録

Heroku アプリの作成

$ cd /path/to/rails/app
$ heroku create

Heroku 用の gem の追加

$ vi Gemfile
-gem 'sqlite3'
+gem 'sqlite3', :group => [:development, :test]
+gem 'pg', :group => [:production] # heroku で DBMS として PostgreSQL を使用するために必要
+gem 'rails_12factor', group: :production # heroku で Rails 4 を動かすために調整してくれるやつ
$ bundle install --without production

Devise の設定

  • Devise を使っている場合
$ vi config/initializers/devise.rb
config.secret_key = '<%= ENV["DEVISE_SECRET_KEY"] %>' if Rails.env.production? 
heroku config:add DEVISE_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

データベースの設定

$ vi config/database.yml
production:
  adapter: postgresql
  encoding: unicode
  pool: 5

シークレットキーの設定

  • シークレットキーを環境変数から読み込むように
$ vi config/secrets.yml
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>                                                                                                                                    
  • .gitignore に config/secrets.yml が登録されている場合は削除する

デプロイ

$ git commit -am 'for heroku'
$ git push heroku master
$ heroku run rake db:migrate