鴨川にあこがれる日々

軽い技術っぽい記事かいてます

RoR4をMySQLで設定をした

はじめに

Ruby on Rails3でこないだまでコードを書いていましたが,(ブログには書いてない)Ruby on Rails4(以下RoR) で書く必要がでてきたので,備忘録として.

レファレンス

Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで) - Qiita
rbenvの設定からこの記事に従い設定したので,RoRの設定もこの記事を参考にさせていただきました.

RoRの設定

RoRの導入のため
Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで) - Qiita
からみていきます.
Ruby : 2.1.2
OS : Mac OS X
DB : MySQL
を想定しています.

RoRのプロジェクトを生成するコマンドを

$ bundle exec rails new example --skip-bundle

$ bundle exec rails new example -d mysql--skip-bundle

とします.
上の場合はデフォルトであるsqlite3になります.

プロジェクトを生成したら
example/config/database.yml
を書き換えます.(DBの設定が記述されているファイルです)

database.yml

# MySQL.  Versions 5.0+ are recommended.
#
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: example_development

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: example_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: example_production
  username: example
  password: <%= ENV['EXAMPLE_DATABASE_PASSWORD'] %>

のうちユーザ名がhogehoge,パスワードがpasswordであれば

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: hogehoge
  password: password
  socket: /tmp/mysql.sock

とします.

この状態だと,DBがまだ作られていないので,

$ bundle exec rake db:create
$ bundle exec rake db:migrate

を実行します.
これをする前に サーバーを立ち上げるとエラーになります.

以上です.
一連の流れになっているので,コマンドの部分はshellスクリプトでまとめたほうがいいような気もしました.