タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

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にしておきました。