]> git.openstreetmap.org Git - nominatim.git/blob - utils/update_database.sh
FAQ addition when to rebuild nominatim.so
[nominatim.git] / utils / update_database.sh
1 #!/bin/bash -xv
2
3 # Derived from https://gist.github.com/RhinoDevel/8a35ebd2a08166f328eca01ab005c6de and edited to work with Pyosmium
4 # Related to https://github.com/osm-search/Nominatim/issues/1683
5
6 # Steps being followed:
7
8 #     *) Get the diff file from server
9 #         1) pyosmium-get-changes (with -f sequence.state for getting sequenceNumber)
10
11 #     *) Import diff
12 #         1) utils/update.php --import-diff
13
14 #     *) Index for all the countries at the end
15
16 # Hint:
17 #
18 # Use "bashdb ./update_database.sh" and bashdb's "next" command for step-by-step
19 # execution.
20
21 # ******************************************************************************
22
23 # REPLACE WITH LIST OF YOUR "COUNTRIES":
24 #
25
26
27 COUNTRIES="europe/monaco europe/andorra"
28
29 # SET TO YOUR NOMINATIM build FOLDER PATH:
30 #
31 NOMINATIMBUILD="/srv/nominatim/build"
32 UPDATEFILE="$NOMINATIMBUILD/utils/update.php"
33
34 # SET TO YOUR update data FOLDER PATH:
35 #
36 UPDATEDIR="/srv/nominatim/update"
37
38 UPDATEBASEURL="https://download.geofabrik.de"
39 UPDATECOUNTRYPOSTFIX="-updates"
40
41 # If you do not use Photon, let Nominatim handle (re-)indexing:
42 #
43 FOLLOWUP="$UPDATEFILE --index"
44 #
45 # If you use Photon, update Photon and let it handle the index
46 # (Photon server must be running and must have been started with "-database",
47 # "-user" and "-password" parameters):
48 #
49 #FOLLOWUP="curl http://localhost:2322/nominatim-update"
50
51 # ******************************************************************************
52
53
54 for COUNTRY in $COUNTRIES;
55 do
56     
57     echo "===================================================================="
58     echo "$COUNTRY"
59     echo "===================================================================="
60     DIR="$UPDATEDIR/$COUNTRY"
61     FILE="$DIR/sequence.state"
62     BASEURL="$UPDATEBASEURL/$COUNTRY$UPDATECOUNTRYPOSTFIX"
63     FILENAME=${COUNTRY//[\/]/_}
64     
65     # mkdir -p ${DIR}
66     cd ${DIR}
67
68     echo "Attempting to get changes"
69     pyosmium-get-changes -o ${DIR}/${FILENAME}.osc.gz -f ${FILE} --server $BASEURL -v
70
71     echo "Attempting to import diffs"
72     ${NOMINATIMBUILD}/utils/update.php --import-diff ${DIR}/${FILENAME}.osc.gz
73     rm ${DIR}/${FILENAME}.osc.gz
74
75 done
76
77 echo "===================================================================="
78 echo "Reindexing" 
79 ${FOLLOWUP}
80 echo "===================================================================="