X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6f6e827702fb2e56c0f7cd6aaf43d98f9c7f5fb2..ef7f3d800cbdd49b692df10d312e5fd880e2e938:/lib/tasks/add_version_to_nodes.rake diff --git a/lib/tasks/add_version_to_nodes.rake b/lib/tasks/add_version_to_nodes.rake index 1ec831234..c0fac49b7 100644 --- a/lib/tasks/add_version_to_nodes.rake +++ b/lib/tasks/add_version_to_nodes.rake @@ -1,20 +1,21 @@ namespace 'db' do - desc 'Populate the node_tags table' + desc 'Adds a version number to the nodes table' task :node_version do require File.dirname(__FILE__) + '/../../config/environment' - lower_bound = 0 - increment = 100 - node_count = OldNode.count - puts node_count - - while lower_bound < node_count - upper_bound = lower_bound + increment - hash = {} + increment = 1000 + offset = 0 + id_max = OldNode.find(:first, :order => 'id desc').id - OldNode.find(:all, :conditions => ['id >= ? AND id < ?',lower_bound, upper_bound], :order => 'timestamp').each do |node| - hash[node.id] = [] if hash[node.id].nil? - hash[node.id] << node + 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| @@ -28,18 +29,12 @@ namespace 'db' do temp_old_node.visible = node.visible temp_old_node.timestamp = node.timestamp temp_old_node.tile = node.tile - temp_old_node.version = node.version - temp_old_node.save! || raise - n +=1 + temp_old_node.version = n + temp_old_node.save! || fail + n += 1 end end - lower_bound += increment + offset += increment end end end - - - - - -