目的
- 以前作成したアプリのDBをMySQLに変更したときのメモ
条件
- ruby 2.5.1
- Rails 5.0.3
手順リスト
- Gemfileに「gem 'mysql2'」を追加
- database.ymlの内容をMySQLに合わせる
1. Gemfileに「gem 'mysql2'」を追加
Gemfile
# sqlite3のgemを削除する。
gem 'sqlite3', '1.3.12'
# mysql2のgemをバージョンを指定して追加する。
gem 'mysql2', '~> 0.4.4'
gem 'mysql2'は必ずバージョン(0.4系とか)を指定すること。
何も指定しないと現時点最新版(0.5.2)がインストールされます。
mysql2(バージョン0.5系)だと現時点エラーが出ます。
記述が終わったら
お決まりのbundle
bundle
2. database.ymlの内容をMySQLに合わせる
config/database.yml
がSQLiteの設定のままなのでMySQLに合わせて変更しましょう
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
host: localhost
development:
<<: *default
database: sample_development # DBの名前。「sample」の部分をアプリの名前に変更すると分かりやい
test:
<<: *default
database: sample_test # DBの名前。「sample」の部分をアプリの名前に変更すると分かりやい
production:
<<: *default
database: sample_production
username: sample_app
password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>
変更したら
rails db:setup
# rake db:setup # DBを作成、スキーマをロード、seedデータをロードする
実際に動くか確認
rails s