]> git.openstreetmap.org Git - rails.git/blob - lib/tasks/add_version_to_nodes.rake
cdcf13a3eb98d1c6af9ebcc3405761e83756e2b1
[rails.git] / lib / tasks / add_version_to_nodes.rake
1 namespace "db" do
2   desc "Adds a version number to the nodes table"
3   task :node_version  do
4     require File.dirname(__FILE__) + "/../../config/environment"
5
6     increment = 1000
7     offset = 0
8     id_max = OldNode.find(:first, :order => "id desc").id
9
10     while offset < (id_max + increment)
11       hash = {}
12
13       # should be offsetting not selecting
14       OldNode.find(:all, :limit => increment, :offset => offset, :order => "timestamp").each do |node|
15         hash[node.id] ||= []
16         hash[node.id] << node
17       end
18
19       hash.each_value do |node_array|
20         n = 1
21         node_array.each do |node|
22           temp_old_node = TempOldNode.new
23           temp_old_node.id = node.id
24           temp_old_node.latitude = node.latitude
25           temp_old_node.longitude = node.longitude
26           temp_old_node.user_id = node.user_id
27           temp_old_node.visible = node.visible
28           temp_old_node.timestamp = node.timestamp
29           temp_old_node.tile = node.tile
30           temp_old_node.version = n
31           temp_old_node.save! || fail
32           n += 1
33         end
34       end
35       offset += increment
36     end
37   end
38 end