From ebef7b8009928dafb9153fbf57531e021284db72 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 12 Sep 2007 17:59:48 +0000 Subject: [PATCH] Add a migration to upgrade gps_points for quad tile support. --- db/README | 25 ++++++++++++++++++++++++- db/migrate/005_tile_tracepoints.rb | 15 +++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 db/migrate/005_tile_tracepoints.rb diff --git a/db/README b/db/README index e3e210a43..f4530f090 100644 --- a/db/README +++ b/db/README @@ -22,10 +22,33 @@ $ mysql -u -p > flush privileges; > exit +Creating functions +==================== + +Run this command in the db/functions directory: + +$ make + +Make sure the db/functions directory is on the MySQL server's library +path and restart the MySQL server. On linux the easiest way to do this +is to create /etc/ld.so.conf.d/osm.conf and place the path to the +db/functions directory in it and then run the following command as root: + +$ ldconfig + +Now create the functions as follows: + +$ mysql -u -p openstreetmap + +(change with appropriate username of administrative user eg. root ) + +> create function tile_for_point returns integer soname 'libquadtile.so'; +> exit + Creating database skeleton tables =================================== -Run this command from the root of your rails direcotry: +Run this command from the root of your rails directory: $ rake db:migrate diff --git a/db/migrate/005_tile_tracepoints.rb b/db/migrate/005_tile_tracepoints.rb new file mode 100644 index 000000000..d9d782df0 --- /dev/null +++ b/db/migrate/005_tile_tracepoints.rb @@ -0,0 +1,15 @@ +class TileTracepoints < ActiveRecord::Migration + def self.up + add_column "gps_points", "tile", :integer, :null => false, :options => "UNSIGNED" + add_index "gps_points", ["tile"], :name => "points_tile_idx" + remove_index "gps_points", :name => "points_idx" + + Tracepoint.update_all("tile = tile_for_point(latitude, longitude)") + end + + def self.down + add_index "gps_points", ["latitude", "longitude"], :name => "points_idx" + remove_index "gps_points", :name => "points_tile_idx" + remove_column "gps_points", "tile" + end +end -- 2.39.5