Railsで2個めのDBを作ってマイグレーションする
Ruby on Rails使ってて、どうしても2個めのDBを作る必要があったのでメモ。
Railsのバージョンは4.0.0。
アプリ名は「Sakura」。
- (1個目マイグレファイル)db/migrate/*
に加えて
- (2個目DB名)sakura_second
- (2個目マイグレファイル)db/second_migrate/*
としたい。
config/database.ymlに2個目の情報をかく
--- config/database.yml.org 2013-09-04 21:48:05.000000000 +0900 +++ config/database.yml 2013-09-04 21:48:54.000000000 +0900 @@ -37,3 +37,13 @@ username: root password: socket: /tmp/mysql.sock + +# The second DB +sakura2: + adapter: mysql2 + encoding: utf8 + database: sakura_second + pool: 5 + username: root + password: + socket: /tmp/mysql.sock
テストとか開発用とか必要なら追加する。
config/environments/sakura2.rbを作る
config/database.ymlに"sakura2"を追加したので、RAILS_ENVの候補となるように、
config/environments/sakura2.rbを新規作成する。
その中でmigrationファイルを置くpathを変更する。
config/environments/sakura2.rb
Sakura::Application.configure do config.paths['db/migrate'] = ['db/second_migrate'] end
db/second_migrate/にマイグレファイルを作る
db/second_migrate/20130904121339_create_inveders.rb
class CreateInveders < ActiveRecord::Migration def change create_table :inveders do |t| t.string :name t.integer :age end end end
2個目のDBをrakeで作る
$ bundle exec rake db:create RAILS_ENV=sakura2