db:一条记录​​的种子错误

时间:2011-09-04 18:35:37

标签: ruby-on-rails-3

我用rake db:seed

导入一些数据
Territory.delete_all
open("db/territories.txt") do |territories|
  territories.read.each_line do |territory|
    id, name, sales_rep_id, handed_out  = territory.chomp.split("\t")
    Territory.create!(:id => id, :name => name, :sales_rep_id => sales_red_id, :handed_out => handed_out)
  end
end

这是我的数据

我的数据

9 Territory 1   2009-08-01  6   2010-07-01
10 Territory 1  2009-08-01  6   2010-07-01
11 Territory 3  2009-09-01  5

一切正常,但第一个记录。导入后它的ID = 0而不是9.从secord记录开始,ID是正确的10,11,12等。

为什么?

由于 托马斯

1 个答案:

答案 0 :(得分:0)

什么数据库?你不能强迫:id就像你在那里做的那样。我的猜测是代码尝试,它将序列推进到那一点,这样你就可以保持记录匹配。如果您更改txt文件的顺序,它仍然有效吗?

无论如何......你可以这样做......替换创造!与此相符:

territory = Territory.new do |t|
  t.id = id
  t.name = name
  t.sales_rep_id = sales_rep_id
  t.handed_out = handed_out
end
t.save!