1
回報率= 2.3.11 紅寶石= 1.8.7 寶石= 1.3.7如何將數據從其他數據庫中獲取到我的數據庫中?
我有一個數據庫(稱之爲 「第一」)配有4個表。我有另一個數據庫(稱爲此數據庫"Second"
),(與另一個密碼)。我想從Second
和表中獲取電子郵件(字段),如果有任何更新,並插入First
數據庫。
問題:我該怎麼做?
回報率= 2.3.11 紅寶石= 1.8.7 寶石= 1.3.7如何將數據從其他數據庫中獲取到我的數據庫中?
我有一個數據庫(稱之爲 「第一」)配有4個表。我有另一個數據庫(稱爲此數據庫"Second"
),(與另一個密碼)。我想從Second
和表中獲取電子郵件(字段),如果有任何更新,並插入First
數據庫。
問題:我該怎麼做?
你可以在你的database.yml中定義不同的數據庫。
first:
adapter: mysql
database: first_development
username: user
password: pwd
host: localhost
second:
adapter: mysql
database: second_development
username: user
password: pwd
host: localhost
,然後使用ActiveRecord::Base.establish_connection
class A < ActiveRecord::Base
ActiveRecord::Base.establish_connection "first"
end
class B < ActiveRecord::Base
ActiveRecord::Base.establish_connection "second"
def self.sync
A.all.each do |record|
B.create(:email => record.email)
end
end
end
我添加了一個簡單的方法稱爲同步,可以爲您的同步問題的起點您的模型連接到不同的數據庫,
完美,現在我明白了它是如何工作的,謝謝!但是有一個問題。例如在模型(A類)我應該創建一些def,我從數據庫中獲取信息? P.S - 在database.yml中。如果我的第二個數據庫只處於生產模式,那麼我可以像你寫的那樣添加,但不是第二次寫my_database,是的? – 2011-06-09 08:44:29
查看我的更新後的帖子,瞭解一個方法的樣子(不知道你的模型是什麼樣的)。我不明白你的問題的第二部分。 – auralbee 2011-06-09 08:59:56
謝謝,我現在正在測試。我的問題的第二部分,對不起。我的意思是,如果我的第二個數據庫(名爲uzez,其中有電子郵件字段的表管理器)處於另一主機上的生產模式,那麼我只需將此「數據庫:second_development」替換爲「database:uzez_production」? SO,A類=帶電子郵件字段的受訪者9)和B類(帶有帶有現場電子郵件的表格管理員的另一個數據庫)。是?最後一個問題,這種方法同步我應該在某個地方寫東西? – 2011-06-09 09:09:50