| | 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 | |