From a5743c91491afd9c84a0d6811f2b1631d04ac005 Mon Sep 17 00:00:00 2001 From: Olivier DEBAUCHE Date: Sun, 13 Jun 2021 11:37:05 +0200 Subject: [PATCH] add rapid import of planet osm from a dump --- run.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/run.sh b/run.sh index d18aff4..a2b44c3 100755 --- a/run.sh +++ b/run.sh @@ -13,9 +13,10 @@ function setPostgresPassword() { } if [ "$#" -ne 1 ]; then - echo "usage: " + echo "usage: " echo "commands:" echo " import: Set up the database and import /data.osm.pbf" + echo " planet: Import form a sql dump planet osm. écho ". upgrade: Upgrade the database echo " run: Runs Apache and renderd to serve tiles at /tile/{z}/{x}/{y}.png" echo "environment variables:" @@ -93,6 +94,54 @@ if [ "$1" = "import" ]; then exit 0 fi +if [ "$1" = "planet" ]; then + # Ensure that database directory is in right state + chown postgres:postgres -R /var/lib/postgresql + if [ ! -f /var/lib/postgresql/13/main/PG_VERSION ]; then + sudo -u postgres /usr/lib/postgresql/13/bin/pg_ctl -D /var/lib/postgresql/13/main/ initdb -o "--locale C.UTF-8" + fi + + # Initialize PostgreSQL + createPostgresConfig + service postgresql start + sudo -u postgres createuser renderer + sudo -u postgres createdb -E UTF8 -O renderer gis + sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis;" + sudo -u postgres psql -d gis -c "CREATE EXTENSION hstore;" + sudo -u postgres psql -d gis -c "ALTER SYSTEM SET work_mem='16MB';" + sudo -u postgres psql -d gis -c "ALTER SYSTEM SET maintenance_work_mem='256MB';" + sudo -u postgres psql -d gis -c "ALTER TABLE geometry_columns OWNER TO renderer;" + sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO renderer;" + setPostgresPassword + + DOWNLOAD_DUMP="https://osm.smartappli.eu/dump.sql" + wget "$WGET_ARGS" "$DOWNLOAD_DUMP" -O /osm.sql + + if [ "$UPDATES" = "enabled" ]; then + # determine and set osmosis_replication_timestamp (for consecutive updates) + osmium fileinfo /data.osm.pbf > /var/lib/mod_tile/data.osm.pbf.info + osmium fileinfo /data.osm.pbf | grep 'osmosis_replication_timestamp=' | cut -b35-44 > /var/lib/mod_tile/replication_timestamp.txt + REPLICATION_TIMESTAMP=$(cat /var/lib/mod_tile/replication_timestamp.txt) + + # initial setup of osmosis workspace (for consecutive updates) + sudo -u renderer openstreetmap-tiles-update-expire $REPLICATION_TIMESTAMP + fi + + # Import data + sudo -u postgres psql -d gis < osm.sql + + #Import external data + sudo chown -R renderer: /home/renderer/src + sudo -u renderer python3 /home/renderer/src/openstreetmap-carto/scripts/get-external-data.py -c /home/renderer/src/openstreetmap-carto/external-data.yml -D /home/renderer/src/openstreetmap-carto/data + + # Register that data has changed for mod_tile caching purposes + touch /var/lib/mod_tile/planet-import-complete + + service postgresql stop + + exit 0 +fi + if [ "$1" = "upgrade" ]; then # Ensure that database directory is in right state