Herokuを試してみる

Heroku というのが流行っているらしい。とりあえず試してみることに。
MacBookPro に環境を作ってみる。

環境:Snow Leopard

rails インストール

http://sememo.blue-robin.jp/?p=376

元々入っていたが、gem のアップデートと rails のアップデートを行った

$ gem update --system
$ gem install rails
$ rails -v
Rails 3.0.3

3.0.3 が入った。新しいものらしい。

MacPorts インストール

同上。いろいろ便利なものがあるなぁ。

port コマンドを打つには、改めて source ~/.bash_profile する必要がある

mysql5 インストール

mysql5-server をインストール

$ sudo port install mysql5-server

mysql の起動では、既に動いていた mysql があったので kill で落としてから再起動する

$ mysql5 -u root -p 

でログインできた。

次に RailsMySQL 用のモジュールを導入する。

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql 

config/database.yml を mysql 用に変更

development:
  adapter: mysql
  database: sandbox
  pool: 5
  timeout: 5000
  username: xxxx
  password: ****
  socket: /opt/local/var/run/mysql5/mysqld.sock

rake db:migrate まで行ったが mysql2 のエラーが出た。以下を参考に Gemfile を変更
http://blog.everyleaf.com/27538644

socket のエラーが出たので以下を参考に database.yml を修正
http://cyclon.s11.xrea.com/mt/archives/2005/11/ruby_on_rails_m.html

次は root でアクセスしようとしてるエラーが出る。
database.yml の中の username: が user: になっていた

次は 設定したユーザ名でアクセスしているがエラーになる
mysql でのパスワード設定が甘かったらしい。

mysql>; grant all privileges on sandbox.* to xxxx@localhost identified by '****';

xxxx は任意のユーザ名で、**** はパスワード。database.yml の記述と同じにする
今回は xxxx@localhost の部分を xxxx@'%' としていたらダメだった。
http://d.hatena.ne.jp/shingotada/20070117/1169043983#c

http://localhost:3000/users/ にアクセスしたらユーザページ出た!やった!

ここまで来て思ったけど、 rails new app_name -d mysql としたらもっと楽だったかも。次回はそうしよう。

Rails3 での Hello World

http://mentalized.net/journal/2010/02/05/hello_rails_3_world/

$ rails new sandbox

sandbox 環境を git で登録
Rails3 の hello world まで
script が多少変わっていて戸惑った。
route.rb の最後の行を有効にするのがミソ

Herokuの登録

http://kuranuki.sonicgarden.jp/2009/05/rubypaasherokurails.html

$ heroku create

heroku create で sshキーが無いというエラーになった。以下を参照して作成。
http://www.mikedepalma.com/heroku-create-no-ssh-public-key-found-in-sshid_rdsa-pub

Herokuへプッシュ
$ git push heroku master
$ heroku open 

出て来たブラウザに hello/world の URLを追加したら出た!

下からログインしてアクセスしてもいける。
https://api.heroku.com/myapps

ローカルで作った db も下のコマンドで migrate できる

heroku rake db:migrate

Heroku 上でDBまで簡単に作れてしまうとは。
サーバ持ってなくても Railsアプリを作れるようになるのは素晴らしいかも!