X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/cd2ca12d4235473cd3611b84e2a61649c17da2f6..af26c9fe606eba5ca4b3346cc26cb965890feb60:/db/migrate/006_tile_nodes.rb diff --git a/db/migrate/006_tile_nodes.rb b/db/migrate/006_tile_nodes.rb index 8bfb6bc3f..ca898cb37 100644 --- a/db/migrate/006_tile_nodes.rb +++ b/db/migrate/006_tile_nodes.rb @@ -1,37 +1,43 @@ -require 'migrate' +require "migrate" + +class TileNodes < ActiveRecord::Migration[4.2] + class Node < ApplicationRecord + self.table_name = "current_nodes" + end + + class OldNode < ApplicationRecord + self.table_name = "nodes" + end -class TileNodes < ActiveRecord::Migration def self.upgrade_table(from_table, to_table, model) if ENV["USE_DB_FUNCTIONS"] - execute <<-END_SQL + execute <<-SQL INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp, tile) SELECT id, ROUND(latitude * 10000000), ROUND(longitude * 10000000), user_id, visible, tags, timestamp, tile_for_point(CAST(ROUND(latitude * 10000000) AS INTEGER), CAST(ROUND(longitude * 10000000) AS INTEGER)) FROM #{from_table} - END_SQL + SQL else - execute <<-END_SQL + execute <<-SQL INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp, tile) SELECT id, ROUND(latitude * 10000000), ROUND(longitude * 10000000), user_id, visible, tags, timestamp, 0 FROM #{from_table} - END_SQL + SQL - model.all.each do |n| - n.save! - end + model.all.each(&:save!) end end def self.downgrade_table(from_table, to_table) - execute <<-END_SQL + execute <<-SQL INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp) SELECT id, latitude / 10000000, longitude / 10000000, user_id, visible, tags, timestamp FROM #{from_table} - END_SQL + SQL end def self.up @@ -56,11 +62,11 @@ class TileNodes < ActiveRecord::Migration change_column "current_nodes", "tile", :bigint upgrade_table "current_nodes_v5", "current_nodes", Node - + drop_table "current_nodes_v5" - remove_index "nodes", :name=> "nodes_uid_idx" - remove_index "nodes", :name=> "nodes_timestamp_idx" + remove_index "nodes", :name => "nodes_uid_idx" + remove_index "nodes", :name => "nodes_timestamp_idx" rename_table "nodes", "nodes_v5" create_table "nodes", :id => false do |t| @@ -98,7 +104,7 @@ class TileNodes < ActiveRecord::Migration t.column "timestamp", :datetime, :null => false end - add_index "current_nodes", ["latitude", "longitude"], :name => "current_nodes_lat_lon_idx" + add_index "current_nodes", %w[latitude longitude], :name => "current_nodes_lat_lon_idx" add_index "current_nodes", ["timestamp"], :name => "current_nodes_timestamp_idx" downgrade_table "current_nodes_v6", "current_nodes" @@ -118,7 +124,7 @@ class TileNodes < ActiveRecord::Migration end add_index "nodes", ["id"], :name => "nodes_uid_idx" - add_index "nodes", ["latitude", "longitude"], :name => "nodes_latlon_idx" + add_index "nodes", %w[latitude longitude], :name => "nodes_latlon_idx" add_index "nodes", ["timestamp"], :name => "nodes_timestamp_idx" downgrade_table "nodes_v6", "nodes"