2011-05-26 55 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