Heroku に Rails アプリケーションをデプロイするまで

GitHub のアカウント取得と GitHub for Windows のインストール

The world’s leading software development platform · GitHub
まぁこれをしないと始まりませんのでw

2014/02/22 追記 : Aptana Studio 3 に内蔵の Git を使うという方法もある。Eclipse Kepler なら EGit が最初から入っているのでそれを使うのもあり。

Heroku のアカウント取得

Cloud Application Platform | Heroku
上に同じく。

Heroku Toolbelt のインストール

ここからダウンロード。従前の gem install heroku は非推奨(だけど一応動くっぽい ?)。
The Heroku CLI | Heroku Dev Center
Git はインストールしなくて良い(すでに GitHub for Windows を入れているから)。Ruby もインストールされるが、Heroku を作動させるためのローカルなもので、元の Ruby とは競合しないのでご安心を。

公開鍵の作成と Heroku への公開鍵の登録

Git Shell を起動してコマンドを叩く。

ssh-keygen -t rsa

何かパスワードがどうのとか聞かれるけど何も打たずに Enter で良い*1。これで C:\User\(ユーザー名)\.ssh に id_rsa と id_rsa.pub が作成される。で、引き続き shell で

heroku keys:add

を叩く。これで Heroku に公開鍵が登録され、SSHリポジトリを push できるようになる。

Rails アプリケーションの作成

まー、ここは個別にせっせとやっていただくとして、共通の作業である Gemfile の修正について。

ruby '2.0.0'

を追加して、Heroku が Ruby 2.0.0 ベースで走るようにする。さらに

gem 'sqlite3'

のところを

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

と書き換え、sqlite3 は開発環境のみで、本番では pg*2 を使うようにする。Gemfile の修正が終わったら一回 bundle update を掛けて Gemfile.lock を更新させる。64bit 版 Ruby の人は前回の記事も参考に。

Assets の事前コンパイル

Assets(SCSS, CoffeeScript) は事前コンパイルしておく。

rake assets:precompile

さらに config\environments\production.rb の

config.serve_static_assets = false

config.serve_static_assets = true

に修正。

2013/11/18 追記 : どうやらこの操作は不要で、config\environments\production.rb の

config.assets.compile = false

config.assets.compile = true

に変更するだけで良いようです(config.serve_static_assetsfalse のまま)。
参考サイト : Heroku で Asset Pipeline を使う - Qiita

いざデプロイ !

後は変更を commit して再び Git Shell でアプリケーションのフォルダに移動して

heroku create (アプリケーション名)
git push heroku master
heroku run rake db:migrate
heroku run rake db:seed

でデプロイとデータベースの作成、初期データの投入ができる。なおアプリケーション名はクラウドサーバのお約束で Heroku 全体で一意である必要があり、省略すると自動で適当なアプリケーション名が付けられる*3

*1:公開鍵を保護するためのパスワードを使用するかどうかなので、何らかの理由で保護したい場合はパスワードを入力すること。

*2:PostgreSQL 用の RubyGems。Heroku はデフォルトで PostgreSQL をデータベースとして採用しており、SQLite3 は使えない。

*3:後から変更もできるが、(アプリケーションフォルダ)\.git\config を修正しないといけない