-require 'lib/migrate'
+require 'migrate'
class RemoveSegments < ActiveRecord::Migration
def self.up
drop_table :segments
drop_table :way_segments
- create_table :way_nodes, myisam_table do |t|
- t.column :id, :bigint, :limit => 64, :null => false
- t.column :node_id, :bigint, :limit => 64, :null => false
- t.column :version, :bigint, :limit => 20, :null => false
- t.column :sequence_id, :bigint, :limit => 11, :null => false
+ create_table :way_nodes, :id => false do |t|
+ t.column :id, :bigint, :null => false
+ t.column :node_id, :bigint, :null => false
+ t.column :version, :bigint, :null => false
+ t.column :sequence_id, :bigint, :null => false
end
add_primary_key :way_nodes, [:id, :version, :sequence_id]
drop_table :current_segments
drop_table :current_way_segments
- create_table :current_way_nodes, innodb_table do |t|
- t.column :id, :bigint, :limit => 64, :null => false
- t.column :node_id, :bigint, :limit => 64, :null => false
- t.column :sequence_id, :bigint, :limit => 11, :null => false
+ create_table :current_way_nodes, :id => false do |t|
+ t.column :id, :bigint, :null => false
+ t.column :node_id, :bigint, :null => false
+ t.column :sequence_id, :bigint, :null => false
end
add_primary_key :current_way_nodes, [:id, :sequence_id]
+ add_index :current_way_nodes, [:node_id], :name => "current_way_nodes_node_idx"
execute "TRUNCATE way_tags"
execute "TRUNCATE ways"
tempfiles.each { |fn| File.chmod 0644, fn } if have_segs
if have_segs
- execute "LOAD DATA LOCAL INFILE '#{ways}' INTO TABLE ways #{csvopts} (id, user_id, timestamp) SET visible = 1, version = 1"
- execute "LOAD DATA LOCAL INFILE '#{way_nodes}' INTO TABLE way_nodes #{csvopts} (id, node_id, sequence_id) SET version = 1"
- execute "LOAD DATA LOCAL INFILE '#{way_tags}' INTO TABLE way_tags #{csvopts} (id, k, v) SET version = 1"
+ execute "LOAD DATA INFILE '#{ways}' INTO TABLE ways #{csvopts} (id, user_id, timestamp) SET visible = 1, version = 1"
+ execute "LOAD DATA INFILE '#{way_nodes}' INTO TABLE way_nodes #{csvopts} (id, node_id, sequence_id) SET version = 1"
+ execute "LOAD DATA INFILE '#{way_tags}' INTO TABLE way_tags #{csvopts} (id, k, v) SET version = 1"
execute "INSERT INTO current_ways SELECT id, user_id, timestamp, visible FROM ways"
execute "INSERT INTO current_way_nodes SELECT id, node_id, sequence_id FROM way_nodes"
execute "INSERT INTO current_way_tags SELECT id, k, v FROM way_tags"
end
- # and then readd the index
- add_index :current_way_nodes, [:node_id], :name => "current_way_nodes_node_idx"
-
if have_segs
- execute "LOAD DATA LOCAL INFILE '#{relations}' INTO TABLE relations #{csvopts} (id, user_id, timestamp) SET visible = 1, version = 1"
- execute "LOAD DATA LOCAL INFILE '#{relation_members}' INTO TABLE relation_members #{csvopts} (id, member_type, member_id, member_role) SET version = 1"
- execute "LOAD DATA LOCAL INFILE '#{relation_tags}' INTO TABLE relation_tags #{csvopts} (id, k, v) SET version = 1"
+ execute "LOAD DATA INFILE '#{relations}' INTO TABLE relations #{csvopts} (id, user_id, timestamp) SET visible = 1, version = 1"
+ execute "LOAD DATA INFILE '#{relation_members}' INTO TABLE relation_members #{csvopts} (id, member_type, member_id, member_role) SET version = 1"
+ execute "LOAD DATA INFILE '#{relation_tags}' INTO TABLE relation_tags #{csvopts} (id, k, v) SET version = 1"
# FIXME: This will only work if there were no relations before the
# migration!
end
def self.down
- raise IrreversibleMigration.new
+ raise ActiveRecord::IrreversibleMigration
end
end