複数のRailsアプリで同じDBに接続する場合DBのマイグレーション履歴が同じschema_migrationsテーブルに格納されるのはちょっとこわい。
でもschema_migrationsって名前はRailsが決めているものだからどうやって変更するの?というのを調べたら接頭辞を使えばいいみたいで
# config/application.rb
module SampleApp
class Application < Rails::Application
...
config.active_record.table_name_prefix = 'sample_'
end
end
上記のようにやっておくとアプリ全体のテーブル名にsample_が付くようになって、問題の箇所はsample_schema_migrationsというテーブル名になります。
ちなみにAdminユーザーテーブルを共有して同じアカウントでログイン出来るようにする場合は、sample_接頭辞をつけている側で
# app/models/admin.rb
class Admin < ActiveRecord::Base
self.table_name_prefix = ''
end
というように個別モデル毎に接頭辞をなくしてあげることも出来るので複数アプリで同じテーブルを参照できますね。
ちなみにDeviseを使っているのでconfig/initializers/devise.rbでconfig.secret_keyを合わせてあげないとログインできませんでした。
多分複数アプリでschema_migrationsを共有しても問題なくて、rake db:migrate:statusすると存在しないmigrationの部分は ********** NO FILE ********** と表示されるだけなんだけどね。