X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/e6fab03800cfb9261fbffb9a7451ce7e4ec3a80b..4424cd5b947432848fe7f5bc7518fd1b718ecf6c:/lib/tasks/populate_node_tags.rake?ds=sidebyside diff --git a/lib/tasks/populate_node_tags.rake b/lib/tasks/populate_node_tags.rake index 186b44e57..86747cfe4 100644 --- a/lib/tasks/populate_node_tags.rake +++ b/lib/tasks/populate_node_tags.rake @@ -3,17 +3,18 @@ namespace 'db' do task :node_tags do require File.dirname(__FILE__) + '/../../config/environment' - #"created_by=YahooApplet 1.0;highway=traffic_signals" node_count = Node.count - - for n in (0..node_count) - Node.find(:all, :limit => 1, :offset => n).each do |node| + limit = 1000 #the number of nodes to grab in one go + offset = 0 + + while offset < node_count + Node.find(:all, :limit => limit, :offset => offset).each do |node| seq_id = 1 node.tags.split(';').each do |tag| nt = NodeTag.new nt.id = node.id - nt.k = tag.split('=')[0] - nt.v = tag.split('=')[1] + nt.k = tag.split('=')[0] || '' + nt.v = tag.split('=')[1] || '' nt.sequence_id = seq_id nt.save! || raise seq_id += 1 @@ -25,8 +26,8 @@ namespace 'db' do old_node.tags.split(';').each do |tag| ont = OldNodeTag.new ont.id = node.id #the id of the node tag - ont.k = tag.split('=')[0] - ont.v = tag.split('=')[1] + ont.k = tag.split('=')[0] || '' + ont.v = tag.split('=')[1] || '' ont.version = version ont.sequence_id = sequence_id ont.save! || raise @@ -35,6 +36,7 @@ namespace 'db' do version += 1 end end + offset += limit end end end