パスワードを忘れた? アカウント作成
461705 journal

witchの日記: (メモ) Ruby/ActiveRecord で複数DB同時接続

日記 by witch

Railsに突入するまえにActiveRecordを覚えようかと。
(「いまからRails?」なんて言うな)

5分でわかるActiveRecord [634]
Magic Multi-Connectionsで複数のSQLite3ファイルを意識的に使う。 [与太郎プログラマの日記]

で、
ActiveRecord(Railsなし)で、複数DBに繋ぎたいとき

ActiveRecord::Base.configurations = {
    "db1" => {
      :adapter  => "postgresql",
      :host     => "localhost",
      :username => "postgres",
      :password => "",
      :database => "db1"
    },
    "db2" => {
      :adapter  => "postgresql",
      :host     => "localhost",
      :username => "postgres",
      :password => "",
      :database => "db2"
    }
}
 
class Users1 < ActiveRecord::Base
    def self.primary_key() "uid" end
    def self.table_name() "users" end
    establish_connection(:db1)
end
 
class Users2 < ActiveRecord::Base
    def self.primary_key() "uid" end
    def self.table_name() "users" end
    establish_connection(:db2)
end
 
puts "DB1: #{Users1.count}"
puts "DB2: #{Users2.count}"

と書いたらそれなりに動いているみたいなのだけど、合っているんでしょうか…(すごく遅いけど)

複数のDBに同じ名前で同じ構造のテーブルが存在していて、お互いのデータの内容を比較チェックするプログラムを作ろうかなあと…

「ActiveRecordなんて使わなくてもできるじゃん」
と言われるともっともなんですけどね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...