rake task to populate node_tags and current_node_tags tables with values from the nodes and current_nodes tables. migration 011 and 012 must be applied before this task.

This commit is contained in:
Nick Black 2008-01-23 11:44:34 +00:00
parent c5f33db61e
commit e6fab03800

View file

@ -0,0 +1,40 @@
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