Rails 3数据库移植

问题描述

必须快速将某些东西拍在一起,以将一个表(约3万条记录)从一个数据库移动到另一个具有不同名称数据库。 我使用RoR的黑客解决方案是这样的:
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解决方案吗?     

解决方法

通常,您可以通过迁移和一些精心构造的SQL来完成此类操作。通常,此想法是针对以下方面:
INSERT INTO line_items (sale_id) SELECT id FROM sale_items_old
您可以根据需要将其他值添加到插入列表和选择规范中。 在迁移中,可以通过将其放入
up
方法中来运行任意SQL:
def self.up
  execute(\"...\")
end