openstreetmap-website/db
Tom Hughes f4571eeb7c Revert r16046.
DO NOT COMMIT MAJOR ENHANCEMENTS TO TRUNK WITHOUT TALKING TO ME FIRST.
2009-06-23 02:48:38 +00:00
..
functions Add postgres implementation of tile_for_point function. 2009-05-08 08:01:33 +00:00
migrate Revert r16046. 2009-06-23 02:48:38 +00:00
MAKE_MIGRATIONS_AND_TEST_THEM_DONT_PUT_SQL_HERE_ANY_MORE add a big fat warning 2007-05-06 10:22:39 +00:00
README documented some additional requirements when installing on a cleaner ubuntu box 2009-06-10 05:27:54 +00:00

Creating database
===================

OSM server uses a database with the following name:

openstreetmap

You may create it with your preferable client or run next (linux) command:

$ mysql -u <uid> -p

(change <uid> with appropriate username of administrative user eg. root )

> create database openstreetmap default character set utf8;
> exit

Creating user, password, and access rights
============================================

$ mysql -u <uid> -p

(change <uid> with appropriate username of administrative user eg. root )

> grant all privileges on openstreetmap.* to 'openstreetmap'@'localhost' identified by 'openstreetmap';
> flush privileges;
> exit

Creating functions For MySQL
==============================

Run this command in the db/functions directory:

$ make libmyosm.so

You might also need to install:
- mysql client development libraries: 	$ sudo apt-get install libmysqlclient16-dev 
- ruby development libraries: 		$ sudo apt-get install ruby1.8-dev
for build to succeed.

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 ldconfig command as root.

On OS X: sudo ln -s /path_to_your_osm_install/sites/rails_port/db/functions/libmyosm.so /usr/local/lib/libmyosm.so

Now create the functions as follows:

$ mysql -u <uid> -p openstreetmap

(change <uid> with appropriate username of administrative user eg. root )

> create function tile_for_point returns integer soname 'libmyosm.so';
> create function maptile_for_point returns integer soname 'libmyosm.so';
> exit

Creating functions for PgSQL
==============================

Run this command in the db/functions directory:

$ make libpgosm.so

You might also need to install:
- postgresql development libraries: 	$ sudo apt-get install postgresql-server-dev-8.3
- ruby development libraries: 		$ sudo apt-get install ruby1.8-dev
for build to succeed.

Now create the function as follows:

$ psql openstreetmap
(This may need authentication or a -u <dbowneruid>)

> CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 
  AS '/path/to/rails-port/db/functions/libpgosm.so', 'maptile_for_point'
  LANGUAGE C STRICT;

Creating database skeleton tables
===================================

Run this command from the root of your rails directory:

$ rake db:migrate

This will create the db for you

You will need to make sure the database connection is configured in database.yml in config directory
You might start with example configuration provided: 
$ cp config/mysql.example.database.yml config/database.yml