| 483 | === Rails Port === |
| 484 | This is needed to allow editing of the data using Potlatch, JOSM, etc |
| 485 | * http://wiki.openstreetmap.org/wiki/The_Rails_Port |
| 486 | |
| 487 | {{{ |
| 488 | apt-get install imagemagick libmagick9-dev |
| 489 | apt-get install ruby ruby1.8-dev libxml2-dev libxml-ruby1.8 libxml-parser-ruby1.8 rubygems librmagick-ruby |
| 490 | gem install -v=2.3.8 rails |
| 491 | #gem install libxml-ruby |
| 492 | #gem install composite_primary_keys |
| 493 | #gem install rmagick |
| 494 | gem install timecop |
| 495 | gem install pg |
| 496 | gem install oauth |
| 497 | |
| 498 | #svn co http://railsexpress.de/svn/plugins/sql_session_store/trunk sql_session_store |
| 499 | |
| 500 | apt-get install postgresql-contrib libpq-dev |
| 501 | su postgres |
| 502 | createuser openstreetmap -s -P |
| 503 | createdb -E UTF8 -O openstreetmap openstreetmap |
| 504 | createdb -E UTF8 -O openstreetmap osm_test |
| 505 | createdb -E UTF8 -O openstreetmap osm |
| 506 | psql -d openstreetmap < /usr/share/postgresql/8.4/contrib/btree_gist.sql |
| 507 | |
| 508 | apt-get install git |
| 509 | cd /home |
| 510 | git clone git://git.openstreetmap.org/rails.git |
| 511 | cd rails |
| 512 | cp config/postgres.example.database.yml config/database.yml |
| 513 | vim config/database.yml |
| 514 | |
| 515 | rake gems:install |
| 516 | rake db:migrate |
| 517 | env RAILS_ENV=production rake db:migrate |
| 518 | rake test |
| 519 | |
| 520 | osmosis --read-xml-0.6 file="planet.osm.bz2" --write-apidb-0.6 populateCurrentTables=yes host="localhost" database="openstreetmap" user="openstreetmap" password="openstreetmap" validateSchemaVersion=no |
| 521 | |
| 522 | select setval('acls_id_seq', (select max(id) from acls)); |
| 523 | select setval('changesets_id_seq', (select max(id) from changesets)); |
| 524 | select setval('countries_id_seq', (select max(id) from countries)); |
| 525 | select setval('current_nodes_id_seq', (select max(id) from current_nodes)); |
| 526 | select setval('current_relations_id_seq', (select max(id) from current_relations)); |
| 527 | select setval('current_ways_id_seq', (select max(id) from current_ways)); |
| 528 | select setval('diary_comments_id_seq', (select max(id) from diary_comments)); |
| 529 | select setval('diary_entries_id_seq', (select max(id) from diary_entries)); |
| 530 | select setval('friends_id_seq', (select max(id) from friends)); |
| 531 | select setval('gpx_file_tags_id_seq', (select max(id) from gpx_file_tags)); |
| 532 | select setval('gpx_files_id_seq', (select max(id) from gpx_files)); |
| 533 | select setval('messages_id_seq', (select max(id) from messages)); |
| 534 | select setval('sessions_id_seq', (select max(id) from sessions)); |
| 535 | select setval('user_tokens_id_seq', (select max(id) from user_tokens)); |
| 536 | select setval('users_id_seq', (select max(id) from users)); |
| 537 | |
| 538 | cd /home/rails |
| 539 | ruby script/server |
| 540 | |
| 541 | cd db/functions |
| 542 | make libpgosm.so |
| 543 | |
| 544 | * Log into PgSQL and execute the CREATE FUNCTION statement from maptile.c's comment: |
| 545 | |
| 546 | CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 |
| 547 | AS '/path/to/rails-port/db/functions/libpgosm', 'maptile_for_point' |
| 548 | LANGUAGE C STRICT; |
| 549 | |
| 550 | CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 |
| 551 | AS '/path/to/rails-port/db/functions/libpgosm', 'tile_for_point' |
| 552 | LANGUAGE C STRICT; |
| 553 | |
| 554 | }}} |
| 555 | |