gaku様の備忘録

プログラミングとか、夢と現実と理想とか。。。

railsをHerokuへUPしてみる

Herokuは無料だし、料金置いとけば強い味方だと感じたので
railsアプリを作成してHerokuへUPしてみた

■構築環境
vageant
CentOS6.5(64bit)
mysql

railsmysqlはローカルに構築済みのこと

とりあえずrailsプロジェクト作成

$ rails new HerokuTest -d mysql

■herokuのtoolbelt導入

$ wget -qO- https://toolbelt.heroku.com/install.sh | sh

パス通す

echo 'PATH="/usr/local/heroku/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

■Herokuでアプリケーションの器を作成する
作成して下さい!

■herokuへデプロイする
とりあえずlogin

$ heroku login

作成したプリケーションへ移動する

$ cd myapp/

■Herokuの登録
以下のコマンドで登録する

$ git init
$ heroku git:remote -a herokutestbygaku

mysqlの導入
herokuのaddonからmysqlを入れる
ClearDB MySQL Database | Add-ons | Heroku

クレジットカードの登録を求められるので登録する
登録したら再度addonを登録
Added cleardb:ignite to herokutestbygaku (Free)
のメッセージが出ればOK

コンソールで以下を叩くとmysqlの情報が得られる

heroku config | grep CLEARDB_DATABASE_URL

以下のような形でmysql→mysql2にして設定する

heroku config:set DATABASE_URL='mysql2://bccb22aa30be2f:1dcbedf7@us-cdbr-iron-east-01.cleardb.net/heroku_2b6a6be13d8a6b9?reconnect=true'

■ローカル環境の設定
rails sでアクセスするとActiveRecord::NoDatabaseError
でエラーが出るのでDBを作成する

create database HerokuTest_development;

■デプロイ
herokuはプロダクション環境なので、初期ページが出ない
そのためTopページを設定(routing設定)してUPする

rake assets:precompile RAILS_ENV=production

デプロイする(コマンドに関してはHerokuのアプリケーションのデプロイ方法に習う)

$ git add .
$ git commit -am "初期Herokuデプロイ"
$ git push heroku master

デプロイ完了!(´・ω・`)

■アクセスしてみる
Herokuのセッティング画面へ移動する
Domain部分のURLコピってアクセス
僕のURLはこれ
herokutestbygaku.herokuapp.com

————————————————————
■既にGitがある&sourcetreeで管理したい場合
コードブレイクで管理、herokuは公開用みたいな感じにしたい場合

$ git remote add heroku git@heroku.com:your_app_name.git 

# 確認

$ git remote -v

# 削除したければ下記

$ git remote rm your_app_name

このままではsource treeでエラーになるのでsshkeyも登録する

ssh-keygen -C 'your@email' -t rsa -f filename
heroku keys:add

以後、sourcetreeにherokuのブランチが出るが、
デプロイはコマンドで行うこと
(どうしてもsorcetreeできない。。。)
初回デプロイは怒られるので、
怒られたら以下のコマンドを

git pull heroku master

■一言
herokuいいねheroku!
って思ってたけど、使ってみると重い気がする。
まだまだ使い方が分かってないからかもしれないけど、、、
初心者にrails教える時か、もしくは本気で運用する時には良いかもと思った。
初級者、上級者用ですな。
最低限、運用するために月6000円ぐらいかかるのは高い。。。
当分VPNでがんばるわ。
ただ、UIかっけえし、サーバ構築しなくていいしで
スピード感はあるな〜って思った。