openstreetmap-website/lib/tasks/add_version_to_nodes.rake
2008-01-25 17:02:43 +00:00

46 lines
1.2 KiB
Ruby

namespace 'db' do
desc 'Adds a version number to the nodes table'
task :node_version do
require File.dirname(__FILE__) + '/../../config/environment'
increment = 1000
offset = 0
id_max = OldNode.find(:first, :order => 'id desc').id
while offset < (id_max + increment)
hash = {}
#should be offsetting not selecting
OldNode.find(:all, :limit => increment, :offset => offset, :order => 'timestamp').each do |node|
if hash[node.id].nil?
hash[node.id] = []
end
hash[node.id] << node
end
hash.each_value do |node_array|
n = 1
node_array.each do |node|
temp_old_node = TempOldNode.new
temp_old_node.id = node.id
temp_old_node.latitude = node.latitude
temp_old_node.longitude = node.longitude
temp_old_node.user_id = node.user_id
temp_old_node.visible = node.visible
temp_old_node.timestamp = node.timestamp
temp_old_node.tile = node.tile
temp_old_node.version = n
temp_old_node.save! || raise
n +=1
end
end
offset += increment
end
end
end