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
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
version += 1
end
end
+ offset += limit
end
end
end