2013-06-24 68 views
0

我有一個帶有postgres數據庫的Rails應用程序A.我也有另一個Rails應用程序B與postgres數據庫。現在我想在應用程序A中重新使用應用程序B的一些數據。導入數據的最佳方式是什麼?我假設一個rake任務可以用於這個,但你會怎麼做?從其他postgres數據庫讀取數據

您是否需要在應用程序A的database.yml中添加應用程序B數據庫的連接詳細信息?我如何才能真正獲得數據?

+0

你想不想讓他們同步?還是隻是批量導入的時間連接? – Doon

+0

@Denis這是一個很好的答案。考慮像這樣發佈它。 –

+0

這是一次性批量導入一些數據 – John

回答

1

你可以通過ActiveRecord的手動連接

require 'active_record' 
ActiveRecord::Base.establish_connection(
    :adapter => "mysql", 
    :host => "localhost", 
    :username => "root", 
    :password => "abcd", 
    :database => "funonrails") 

或做這樣的事情

dbconfig = YAML::load(File.open('database.yml')) 
ActiveRecord::Base.establish_connection(dbconfig[:students_development]) 
+0

這看起來很有趣,但我會如何向這個數據庫發出請求,如「people = People.all」?它如何知道它應該從數據庫B中獲取而不是從數據庫A中獲取? – John

+0

您必須將數據庫B地址傳遞給連接。其實,我認爲你需要實例化2個activerecord連接,connectionA和connectionB。看看這個鏈接:http://railskey.wordpress.com/2012/07/20/manual-active-record-db-connection/它可以幫助你 –

+0

真棒,這看起來非常感謝! – John