Skip to content

Commit

Permalink
osm2pgsql append if database already exists
Browse files Browse the repository at this point in the history
do not initialize database if it already exists
  • Loading branch information
hutli committed Oct 9, 2024
1 parent ab228ee commit 9141cb0
Showing 1 changed file with 33 additions and 16 deletions.
49 changes: 33 additions & 16 deletions run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,24 @@ if [ "$1" == "import" ]; then
chown -R postgres: /var/lib/postgresql /data/database/postgres/
if [ ! -f /data/database/postgres/PG_VERSION ]; then
sudo -u postgres /usr/lib/postgresql/$PG_VERSION/bin/pg_ctl -D /data/database/postgres/ initdb -o "--locale C.UTF-8"
fi
fi

# Initialize PostgreSQL
createPostgresConfig
service postgresql start
sudo -u postgres createuser renderer || echo 'Role "renderer" already exists, skipping'
sudo -u postgres createdb -E UTF8 -O renderer gis || echo 'Database "gis" already exists, skipping'
sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis;" || echo 'Extension "postgis" already exists, skipping'
sudo -u postgres psql -d gis -c "CREATE EXTENSION hstore;" || echo 'Extension "hstore" already exists'
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

if [ "$( sudo -u postgres psql -XtAc "SELECT 1 FROM pg_database WHERE datname='gis'" )" = '1' ]
then
echo "Skipping postgres initialization."
else
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 TABLE geometry_columns OWNER TO renderer;"
sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO renderer;"
setPostgresPassword
fi

# Download Luxembourg as sample if no data is provided
if [ ! -f /data/region.osm.pbf ] && [ -z "${DOWNLOAD_PBF:-}" ]; then
Expand Down Expand Up @@ -96,14 +102,25 @@ if [ "$1" == "import" ]; then
fi

# Import data
sudo -u renderer osm2pgsql -d gis --create --slim -G --hstore \
--tag-transform-script /data/style/${NAME_LUA:-openstreetmap-carto.lua} \
--number-processes ${THREADS:-4} \
-S /data/style/${NAME_STYLE:-openstreetmap-carto.style} \
/data/region.osm.pbf \
${OSM2PGSQL_EXTRA_ARGS:-} \
;

if [ "$( sudo -u postgres psql -XtAc "SELECT 1 FROM pg_database WHERE datname='gis'" )" = '1' ]
then
echo "Postgres already initialized, appending new data... This is slow, have patience!"

sudo -u renderer osm2pgsql -d gis --append --slim -G --hstore \
--tag-transform-script /data/style/${NAME_LUA:-openstreetmap-carto.lua} \
--number-processes ${THREADS:-4} \
-S /data/style/${NAME_STYLE:-openstreetmap-carto.style} \
/data/region.osm.pbf \
${OSM2PGSQL_EXTRA_ARGS:-} \
else
sudo -u renderer osm2pgsql -d gis --create --slim -G --hstore \
--tag-transform-script /data/style/${NAME_LUA:-openstreetmap-carto.lua} \
--number-processes ${THREADS:-4} \
-S /data/style/${NAME_STYLE:-openstreetmap-carto.style} \
/data/region.osm.pbf \
${OSM2PGSQL_EXTRA_ARGS:-} \
fi

# old flat-nodes dir
if [ -f /nodes/flat_nodes.bin ] && ! [ -f /data/database/flat_nodes.bin ]; then
mv /nodes/flat_nodes.bin /data/database/flat_nodes.bin
Expand Down

0 comments on commit 9141cb0

Please sign in to comment.