--- /dev/null
+namespace 'db' do
+ desc 'Populate the node_tags table'
+ 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|
+ 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.sequence_id = seq_id
+ nt.save! || raise
+ seq_id += 1
+ end
+
+ version = 1 #version refers to one set of histories
+ node.old_nodes.find(:all, :order => 'timestamp asc').each do |old_node|
+ sequence_id = 1 #sequence_id refers to the sequence of node tags within a history
+ 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.version = version
+ ont.sequence_id = sequence_id
+ ont.save! || raise
+ sequence_id += 1
+ end
+ version += 1
+ end
+ end
+ end
+ end
+end