Rails 3数据库移植

时间:2011-05-26 13:04:46

标签: sql ruby-on-rails

不得不快速拍打一些东西,将一张桌子(大约30万条记录)从一个数据库移动到另一个不同名称的数据库。

使用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解决方案吗?

1 个答案:

答案 0 :(得分:0)

通常,您可以通过迁移和一些精心构建的SQL来执行此类操作。一般来说,这个想法是按照以下方式做的:

INSERT INTO line_items (sale_id) SELECT id FROM sale_items_old

您可以根据需要向插入列表和选择规范添加其他值。

在迁移中,您可以通过将其置于up方法中来运行任意SQL:

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