rails 再開しようとしたけど殆ど忘れてたのでチュートリアル頭からざっと読みつつ手動かしてます。で、前回は飛ばしていた heroku の項目もちょっと触ってみようかなと思ってチュートリアルのアプリを heroku にデプロイしてみた。というかこの内容 rails 関係ないな。
第1章 ゼロからデプロイまで | Rails チュートリアル
heroku クライアントのインストール
heroku へデプロイする際には heroku のクライアントをインストールする必要がある。
Heroku Toolbelt自分の使用している Ubuntu 14.04 LTS であれば以下のような感じ。ソレ以外であれば Heroku Toolbelt のサイトからダウンロードしよう。
$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
これで heroku コマンドが使えるようになる。
heroku にデプロイする
プロジェクトは git で管理する必要がある。というのも heroku へデプロイする際に git を使用するからだ。チュートリアルにあるように git init; git add .; git commit とかしてれば大体どうにかなる。
heroku コマンドがインストールできたら heroku にログインする。
$ heroku login
Enter your Heroku credentials.
Email: hoge@example.com
Password (typing will be hidden):
Your Heroku account does not have a public ssh key uploaded.
Found an SSH public key at /home/ryomatsu/.ssh/id_rsa.pub
Would you like to upload it to Heroku? [Yn] y
Uploading SSH public key /home/ryomatsu/.ssh/id_rsa.pub... done
Authentication successful.
heroku のユーザ登録時に使用したメールアドレス及びパスワードでログインしよう。途中公開鍵のアップロードを求められるので既にアレばそれを、なければこの時点で作ると良い。
認証が完了したらリポジトリを作成する。
$ heroku create
Creating afternoon-reaches-9404... done, stack is cedar-14
https://afternoon-reaches-9404.herokuapp.com/ | git@heroku.com:afternoon-reaches-9404.git
Git remote heroku added
出力されたログにもあるように git remote にも自動で登録される。なのであとは以下のコマンドで heroku へプッシュすれば良い。
$ git push heroku master
これだけだとデータベースが無いので動かない。ローカルでは sqlite だが heroku では postgresql を使用するよう修正しよう。
まずは config/database.yml の設定
# config/database.yml の production 欄を heroku のダッシュボード内に記述のある postgresql の設定値を入れる
production:
adapter: postgresql
encoding: utf8
database: DATABASE
port: 5432
username: USERNAME
password: PASSWORD
設定したら コミットし先ほどと同じように git push heroku master する。
設定できたら rake コマンドでデータベースを作成する。
$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.8844
Migrating to CreateUsers (20141114065426)
== 20141114065426 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.3776s
== 20141114065426 CreateUsers: migrated (0.3779s) =============================
Migrating to CreateMicroposts (20141114071029)
== 20141114071029 CreateMicroposts: migrating =================================
-- create_table(:microposts)
-> 0.0737s
== 20141114071029 CreateMicroposts: migrated (0.0739s) ========================
この状態で heroku create した際に出力される URL へアクセスしたらデプロイしたアプリが表示される。