2013-04-17 32 views
1

我想導入一些舊的mysql數據到我的網站的postgresql數據庫,但我有一些麻煩連接到舊的MySQL數據庫。我創建了一個rake任務來嘗試從我的舊數據庫中打印用戶名,但我似乎無法弄清楚。這是我想要做的:連接到另一個數據庫適配器

desc "imports old records to the new postgresql db" 
task "db:import_old" => :environment do 

    class OldDatabase < ActiveRecord::Base 
    self.establish_connection(
     :adapter => "mysql2", 
     :host  => "localhost", 
     :username => "root", 
     :password => "", 
     :database => "old_database" 
    ) 
    end 

    user = OldDatabase.user.find_by_user_id(1) 

    puts "Hello, #{user.name}!" 
    puts 
end 

但我永遠不能輸出舊的數據庫的數據。有什麼建議麼?謝謝! :)

回答

1

通常你會想爲每個底層數據庫定義一個類,從ActiveRecord繼承,然後修改連接參數。

然後,在你的模型,你會從這些專業類繼承,而不是從ActiveRecord的::基地

class DatabaseCurrent < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection settings['database'] 
end 

class DatabaseOld < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection settings['database2'] 
end 

# in your Model definitions: 

class User < DatabaseCurrent 
#... 
end 

class OldUser < DatabaseOld 
# ... 
end 

使用Rails:

http://blog.vishnugopal.com/2008/01/12/multiple-db-connections-in-railsactiverecord/

沒有扶手:

http://idevone.wordpress.com/2010/09/26/multiple-activerecord-connections-without-rails/

+0

究竟是什麼我正在尋找,謝謝! – Ken

相關問題