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