元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

ActiveRecord::Baseを別のDBに対して使う

以前Rails1で作ったアプリから、新しく作ったものへデータを移行することになりました。

規模もそこまで大きくないし、rakeでActiveRecord使って操作すればすむレベルです。

ただし、違うデータベース、DBMSも違います。定期的に接続方法を忘れるのでメモです。

config/database.yml

developemnt:
    # 通常の設定

hoge_development:
    # 古いDBへの接続設定

app/models/legacy/book.rb

class Legacy::Book < ActiveRecord::Base
  self.table_name = 'books'
  self.establish_connection "hoge_#{Rails.env}"
  after_initialize :readonly!
end

今回は間違って更新とかしたくないので、すべてreadonlyにしておきました。