railsのDBをmysqlに変更する。

  • 121
    いいね
  • 0
    コメント

最初に、

$ rails new アプリケーション名 -d mysql
or
$ rails new アプリケーション名 --database=mysql

でやれば、出来るのだが、今回は後から変更することを想定しています。

database.yml
development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

に設定を変更。
この内容は、 $ rails new アプリケーション名 -d mysql でアプリケーションを作成した時のconfig/database.yml を参考に記述しているだけです。

DB設定を更新したので、DB側の準備をしていきます。

bundle exec rake db:create

を行うと、以下のエラーが出ました。

(in [DIRECTORY])
rake aborted!
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (mysql2 is not part of the bundle. Add it to Gemfile.)

内容は、mysql用のアダプタがないということです。
したがってGemfileを書き換えて、mysqlのアダプタのgemを追加していきます。

# gem 'sqlite3' <- 必要ないので削除
gem 'mysql2'

コンソールに移って、

$ bundle install

これで、mysqlのアダプタのgemを加える事ができました。
更に、mysqlにDBの追加と、テーブル作成を行っていきます。

$ bundle exec rake db:create
$ bundle exec rake db:migrate
==  CreateTables: migrating ===================================================
-- create_table(:tables)
   -> 0.0186s
==  CreateTables: migrated (0.0187s) ==========================================

これで完了です。