【发布时间】:2014-11-13 15:41:53
【问题描述】:
我需要批量插入 > 100.000 条记录。 id 不会由数据库创建,我必须使用给定的 UUID: 使用 mymodel.new 分配 ID 在循环中执行此操作,然后保存记录将起作用,但速度太慢(大约 20 分钟)
当我创建一个数组“记录”并使用 mymodel.create(records) 时,我遇到了“无法批量分配 id”问题。 我已经尝试了所有我能找到的解决方案:
- 'attr_accessible :id, ...' 用于模型。适用于除 id 之外的所有人。
- (重新)定义'def self.attributes_protected_by_default [] end' - 无效
- 一个建议是使用 'create' 和 ':without_protection => true',但 create 不接受多个参数。
.所以这些解决方案都没有帮助。 我还能做什么?
【问题讨论】:
-
记录中的id存放在id列重要吗?也许创建一个
external_id列并在其中插入 id 并避免在 mass_assignment 上与 rails 争吵?
标签: activerecord mass-assignment