我用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等。
为什么?
由于 托马斯
答案 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!