Mac(Lion)で作ったRailsアプリ(sqlite使用)をherokuで公開する

勉強がてら手元のMacでRailsアプリを作ってるんだけど、作ったからにはworld wide webへ公開したい。
最初はdotcloudで公開しようとしたんだけど挫折したので、herokuでチャレンジしてみることに。

ところがherokuはpostgreSQLしか(?)使えないので、単純にpushしただけではこちらも動かなかった。
刺身さんの手助けを得ながらherokuで公開することができたので、手順を忘れないようにメモっておく。

ほぼmizzyさんが社内のwikiにまとめてくださってたやつです。
なんかパクってごめんなさい。。。

手元の環境

  • OS: Lion
  • ruby: 1.9.2p290
  • Rails: 3.0.10

Railsアプリのディレクトリ直下にある Gemfile の最後に追記

group :production do
  gem 'pg'
end

bundle updateするために必要らしいので、postgresql をインストールする。
homebrewを使ってインストール。5分もかからず終わった。

$ brew install postgresql

終わったら、bundle update を実行

$ bundle update

で、一旦コミット&デプロイする。

最近インストールした GitHub for Macが使いやすいので、こちらでコミット。
herokuへのデプロイはコマンドラインで。

$ git push heroku master

おわったら heroku console というコマンドでデータベースの接続情報を確認

$ heroku console
>> ENV['DATABASE_URL']
=> "postgres://yyyyyyyy:xxxxxxxxxxxxxxxxxxxx@ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com/yyyyyyyy"
>> exit

yyyyyyyy、xxxxxxxxxxxxxxxxxxxxな部分はユーザー毎に違う。

データベースの情報を config/database.yml で設定する。

production:
  adapter: pg
  database: yyyyyyyy
  username: yyyyyyyy
  password: xxxxxxxxxxxxxxxxxxxx
  host: ec2-xxx-xx-xxx-xx.compute-x.amazonaws.com

host部分もユーザーごとに違うのかもしれないので要確認。

編集した内容をコミット&デプロイする。

コミットはGitHub for Macで。かわいいよ、GitHub for Mac。
デプロイはターミナルで。かわいいよ。ターミナル。

$ git push heroku master

最後に、migrate。
migrateってのが何なのかわかってないけど、データベーススキーマを流し込むということをやってるらしい。

$ heroku rake db:migrate

以上で割り当てられたURLへアクセスすれば、動作するアプリケーションのページが表示された。

刺身さんmizzyさんに感謝!