]> git.openstreetmap.org Git - nominatim.git/blob - utils/import_multiple_regions.sh
introduce dotenv parsing for setup.php
[nominatim.git] / utils / import_multiple_regions.sh
1 #!/bin/bash -xv
2
3 # Script to set up Nominatim database for multiple countries
4
5 # Steps to follow:
6
7 #     *) Get the pbf files from server
8
9 #     *) Set up sequence.state for updates
10
11 #     *) Merge the pbf files into a single file.
12
13 #     *) Setup nominatim db using 'setup.php --osm-file'
14
15 # Hint:
16 #
17 # Use "bashdb ./update_database.sh" and bashdb's "next" command for step-by-step
18 # execution.
19
20 # ******************************************************************************
21
22 touch2() { mkdir -p "$(dirname "$1")" && touch "$1" ; }
23
24 # ******************************************************************************
25 # Configuration section: Variables in this section should be set according to your requirements
26
27 # REPLACE WITH LIST OF YOUR "COUNTRIES":
28
29 COUNTRIES="europe/monaco europe/andorra"
30
31 # SET TO YOUR NOMINATIM build FOLDER PATH:
32
33 NOMINATIMBUILD="/srv/nominatim/build"
34 SETUPFILE="$NOMINATIMBUILD/utils/setup.php"
35 UPDATEFILE="$NOMINATIMBUILD/utils/update.php"
36
37 # SET TO YOUR update FOLDER PATH:
38
39 UPDATEDIR="/srv/nominatim/update"
40
41 # SET TO YOUR replication server URL:
42
43 BASEURL="https://download.geofabrik.de"
44 DOWNCOUNTRYPOSTFIX="-latest.osm.pbf"
45
46 # End of configuration section
47 # ******************************************************************************
48
49 COMBINEFILES="osmium merge"
50
51 mkdir -p ${UPDATEDIR}
52 cd ${UPDATEDIR}
53 rm -rf tmp
54 mkdir -p tmp
55 cd tmp
56
57 for COUNTRY in $COUNTRIES;
58 do
59     
60     echo "===================================================================="
61     echo "$COUNTRY"
62     echo "===================================================================="
63     DIR="$UPDATEDIR/$COUNTRY"
64     FILE="$DIR/configuration.txt"
65     DOWNURL="$BASEURL/$COUNTRY$DOWNCOUNTRYPOSTFIX"
66     IMPORTFILE=$COUNTRY$DOWNCOUNTRYPOSTFIX
67     IMPORTFILEPATH=${UPDATEDIR}/tmp/${IMPORTFILE}
68     FILENAME=${COUNTRY//[\/]/_}
69     
70
71     touch2 $IMPORTFILEPATH
72     wget ${DOWNURL} -O $IMPORTFILEPATH
73
74     touch2 ${DIR}/sequence.state
75     pyosmium-get-changes -O $IMPORTFILEPATH -f ${DIR}/sequence.state -v
76
77     COMBINEFILES="${COMBINEFILES} ${IMPORTFILEPATH}"
78     echo $IMPORTFILE
79     echo "===================================================================="
80 done
81
82
83 echo "${COMBINEFILES} -o combined.osm.pbf"
84 ${COMBINEFILES} -o combined.osm.pbf
85
86 echo "===================================================================="
87 echo "Setting up nominatim db"
88 ${SETUPFILE} --osm-file ${UPDATEDIR}/tmp/combined.osm.pbf --all 2>&1
89
90 # ${UPDATEFILE} --import-file ${UPDATEDIR}/tmp/combined.osm.pbf 2>&1
91 echo "===================================================================="