Rails
MySQL
Heroku

Heroku + MySQL + Rails + Mac とりあえず構築まで

More than 1 year has passed since last update.

タイトルの通り、構築までをざっくりと。

ドットインストールとかで見たのはPostgresだったので、MySQLで試してみました。
http://dotinstall.com/lessons/basic_heroku

herokuの準備

まず当然アカウントを作成している必要がある。
https://dashboard.heroku.com/

そしてheroku toolbeltをインストールします。
https://toolbelt.heroku.com/

これがないとherokuコマンドが使えない。

インストールしたらログインできるのか試す。

terminal
$ heroku login

アカウントを求められるのでログインする。
ログインできればherokuの準備は完了。

MySQLをインストールする

インストールしてください。
参考:http://qiita.com/hkusu/items/cda3e8461e7a46ecf25d

Railsのアプリを作成する

MySQLで使える様に作成する。
参考:http://qiita.com/itkrt2y/items/4ea5bfe90ca65e4a9ebd

$ rails new testapp -d mysql
$ cd testapp //ディレクトリを移動

よくわからないけどみんなやってるのtherubyracerのコメントアウトを外す。
あと、herokuでrailsを動かすために「rails_12factor」が必要なので追加する

#gem 'therubyracer', platforms: :ruby
gem 'therubyracer', platforms: :ruby

#追加
gem 'rails_12factor', group: :production

Gemfileを更新したらbundle install

bundle install

Procfileを作成する

heroku上で実行されるコマンドを書いておくファイルらしいです。
Railsのディレクトリ内でやってください。

$ vi Procfile
web: bundle exec rails server -p $PORT

gitとして初期化

Railsのディレクトリ内でやってください。

$ git init
$ git add .
$ git commit -m "initial commit."

Herokuにアプリを登録

 
コマンドラインでできます。
これでherokuのサーバ上にgitリポジトリが作られます。
同時に、公開URLとgitリポジトリのURLが生成されます。

$ heroku create
Creating app... done, stack is cedar-14
[herokuの公開URL] | [herokuのgitリポジトリ]

herokuにMySQLアドオンを追加

$ heroku addons:add cleardb:ignite

MySQLの設定(パスワードとか)を調べる

$ heroku config | grep CLEARDB_DATABASE_URL
CLEARDB_DATABASE_URL: mysql://[ユーザ名]:[パスワード]@[ホスト名]/[スキーマ名]?reconnect=true

herokuの環境変数を設定

heroku config:set DATABASE_URL='mysql2://[ユーザ名]:[パスワード]@[ホスト名]/[スキーマ名]?reconnect=true'
heroku config:set DATABASE_PASSWORD ='[パスワード]'

Scaffoldでもしましょう

$ rails g scaffold Text title:string body:text
$ rake db:create
$ rake db:migrate

RailsのDB接続設定を変えます。

config/database.yml(変更前)
production:
  <<: *default
  database: testapp_production
  username: testapp
  password: <%= ENV['TESTAPP_DATABASE_PASSWORD'] %>

さっき追加した環境変数の値を設定しましょう

config/database.yml(変更後)
production:
  <<: *default
  database: [スキーマ名]
  username: [ユーザ名]
  password: <%= ENV['DATABASE_PASSWORD'] %>

そしたらまたコミット

$ git add .
$ git commit -m "initial commit."

herokuにデプロイ

$ git push heroku master
$ heroku open

herokuにスキーマを作成する

http://xxxxxxxx.com/texts

$ heroku run rake db:create
$ heroku run rake db:migrate

ログを見たい時はこう

$ heroku logs --tail

あとはProcfileにどんなことを書けるのか調べてみたいです。
まだよくわかってないので…。