2014-05-09 75 views
0

我想在類上有一個方法將對象和所有關係複製到具有相同結構的另一個數據庫。我怎樣才能做到這一點?將對象複製到Rails中的新數據庫ActiveRecord

+0

嗯,備份然後恢復在新的數據庫? – MrYoshiji

+0

我們需要更多細節。這是一次性任務嗎?然後,吉良司先生的建議奏效。這會定期完成嗎?你是否擔心讓物體保持同步?如果您第二次複製對象及其依賴項,您是否需要覆蓋原始副本? –

+0

我並不擔心同步對象。我只是想在動作發生時將它們推入另一個數據庫。第二次啓動操作會覆蓋第二個數據庫中的對象。這將發生在每個對象的基礎上。 –

回答

0

你可以看看dbcharmer,這將允許即時切換連接,所以複製一個記錄將是我猜的一塊蛋糕。

[更新]小例子:你不必亂用ActiveRecord::Base.connection

假設你database.yml看起來是這樣的:

production: 
    blah: 
    adapter: mysql 
    username: blah 
    host: blah.local 
    database: blah 

    foo: 
    adapter: mysql 
    username: foo 
    host: foo.local 
    database: foo 

那麼你應該能夠做到像(聲明:我只有閱讀文檔自己)

original_user = User.on_foo.find(99) 

User.on_blah.create(name: original_user.name, ...) 

我想你甚至可以做這樣的事情

User.on_blah do 
    original_user.save 
end 
+0

我看着dbcharmer,但我不希望它搞亂ActiveRecord :: Base的連接或同一類的其他對象的連接。 –

+0

當我閱讀文檔時,不需要混淆「ActiveRecord :: Base.connection',但可以使用'.on_ '命令爲特定連接執行語句。我添加了一個小例子。 – nathanvda

+0

我不確定這是要走的路。我需要從對象上的所有關係中複製數據。我遇到了批量分配,驗證和關係方面的問題。 –

相關問題