Heroku + Ruby on Rails 3.2 で Webアプリ開発するときによく使うコマンドと一連の流れまとめ

Tadashi Shigeoka ·  Sat, January 14, 2012

Heroku + Ruby on Rails 3.2系で Webアプリ開発するときによく使うコマンドをこの記事だけ読めばほぼ分かるように一連の流れと共にまとめてみました。(最終更新日:2012/06/02)

Heroku

事前準備

Ruby, Rails, Heroku などの環境が整っていない場合は、下記を参考に開発環境を整えましょう。

[Mac] Homebrew をインストール | CodeNote.net

Mac OS X Lion に RVM で Ruby の開発環境を構築する手順 | CodeNote.net

[RVM] Ruby on Rails のバージョンを管理する方法 | CodeNote.net

[Ruby][RVM] gemset global に Heroku をインストールする | CodeNote.net

Ruby on Railsのアプリ作成

rails new コマンドでRailsアプリを作成後、rails s コマンドでWEBrickというシンプルなHTTPサーバを起動して、http://localhost:3000/ にアクセスしてブラウザで確認します。

rails new myapp -T
cd myapp
rails s

 

Gitのリポジトリ作成・コミット

Git リポジトリを作成して、最初のコミットをします。

git init
git add -A
git commit -m "create new app"

 

Gemfile の編集, Gem のインストール

必要な Gem をインストールします。

# webserver
gem 'thin'

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
  # For TDD
  gem 'spork'
  gem 'rspec-rails'
  gem 'autotest-rails'
  gem 'webrat'
  gem 'cucumber'
end

Gemfile を編集後、gem の依存関係を整理して再インストールするために bundle install します。

bundle install --without production

 

Herokuアプリの作成・デプロイ

heroku create コマンドで heroku にアプリケーションを作成します。

引数に名前を入力すると指定した名前でアプリケーションを登録します。

また、Rails 3.1 からは Cedar スタックでないと動作しないため、—stack cedar オプションを付けて、Herokuアプリケーションを作成する必要があります。

(2012年6月20日からデフォルトで Cedar スタックで作成されるみたいです。)

heroku create myapp --stack cedar

・参考:Heroku | Dev Center | Rails 3.1 on Heroku Cedar はてなブックマーク - Heroku | Dev Center | Rails 3.1 on Heroku Cedar

・参考:Heroku | Dev Center | Getting Started with Rails 3.0 on Heroku/Cedar はてなブックマーク - Heroku | Dev Center | Getting Started with Rails 3.0 on Heroku/Cedar  

次に、Gitを使って、作成したアプリの Heroku 側のレポジトリにアプリケーションのソースコードを送信します。

git push heroku master

heroku open コマンドで作成したアプリをブラウザで開いて確認します。

$ heroku open

 

Webサーバーを WEBrick から thin に変更する

こちらを参考にして、Heroku 上のWEBサーバーを WEBrick から thin に変更します。

[Heroku] WebServer を WEBrick から thin に変更する方法 – [Rails 3.x on Heroku/Cedar] | CodeNote.net はてなブックマーク - [Heroku] WebServer を WEBrick から thin に変更する方法 – [Rails 3.x on Heroku/Cedar] | CodeNote.net  

PostgreSQL データベースの初期設定

shared database ではなく、heroku-postgresql:dev を使うように設定します。

[Heroku] heroku-postgresql:dev の設定方法 | CodeNote.net はてなブックマーク - [Heroku] heroku-postgresql:dev の設定方法 | CodeNote.net

heroku はデプロイ時に database.yml を自動生成するそうなので、database.yml の設定は特に必要ないみたいです。  

Railsのアプリを作成していく

デフォルトルートの静的ファイル index.html を削除する

git rm public/index.html

DB 作成

rails generate model user \\
uid:integer name:string first_name:string middle_name:string last_name:string \\
link:text username:string gender:string locale:string email:string friend_num:integer
git commit -am "create model"
heroku run rake db:migrate --app=myapp-staging

コントローラー(Controller)クラスの作成

rails g controller users

エラー画面の設定変更

staging 環境でエラー画面を develop 環境のものと同じ表示に変更します。

config/environments/staging.rb

# Full error reports are disabled and caching is turned on
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

 

便利なHerokuコマンドたち

ログを垂れ流しで確認する

heroku logs --tail

Heroku上で Railsコンソールを起動する

heroku run console

  とりあえず、以上です。(随時更新予定)