2011-05-26 110 views
0

不得不快速將一些東西放在一起,將一個表(大約30k條記錄)從一個數據庫移動到另一個數據庫,並使用不同的名稱。使用RoR的Rails 3數據庫移植

我砍的解決辦法是這樣的:

for old_line in SaleItemsOld.where(:sale_id => old_sale.id) 
    line = LineItems.new 
     line.sale_id = new_sale.id 
     ... 
    line.save 
end 

我本以爲這應該通過構建所有這些新行作爲SQL查詢在一個字符串,然後執行該被加速一氣呵成。

有沒有更好的Rails解決方案呢?

回答

0

通常你可以通過遷移和一些精心構造的SQL來完成這種事情。一般的想法是做線沿線的東西:

INSERT INTO line_items (sale_id) SELECT id FROM sale_items_old 

要求既插件列表和選擇規格您可以添加其他值。

在遷移,你可以通過將其放置在您的up方法執行任意SQL:

def self.up 
    execute("...") 
end