X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9610664fc566a912915f4a4f5abcf8981c2f9f4b..5d6aabc457e673e825c4cf46585938bcc77aec3b:/docs/admin/Migration.md diff --git a/docs/admin/Migration.md b/docs/admin/Migration.md index 3f330bb9..fc309af1 100644 --- a/docs/admin/Migration.md +++ b/docs/admin/Migration.md @@ -1,10 +1,66 @@ # Database Migrations -This page describes database migrations necessary to update existing databases -to newer versions of Nominatim. +Since version 3.7.0 Nominatim offers automatic migrations. Please follow +the following steps: -SQL statements should be executed from the PostgreSQL commandline. Execute -`psql nominatim` to enter command line mode. +* stop any updates that are potentially running +* update Nominatim to the newer version +* go to your project directory and run `nominatim admin --migrate` +* (optionally) restart updates + +Below you find additional migrations and hints about other structural and +breaking changes. **Please read them before running the migration.** + +!!! note + If you are migrating from a version <3.6, then you still have to follow + the manual migration steps up to 3.6. + +## 3.6.0 -> 3.7.0 + +### New format and name of configuration file + +The configuration for an import is now saved in a `.env` file in the project +directory. This file follows the dotenv format. For more information, see +the [installation chapter](Import.md#configuration-setup-in-env). + +To migrate to the new system, create a new project directory, add the `.env` +file and port your custom configuration from `settings/local.php`. Most +settings are named similar and only have received a `NOMINATIM_` prefix. +Use the default settings in `settings/env.defaults` as a reference. + +### New location for data files + +External data files for Wikipedia importance, postcodes etc. are no longer +expected to reside in the source tree by default. Instead they will be searched +in the project directory. If you have an automated setup script you must +either adapt the download location or explicitly set the location of the +files to the old place in your `.env`. + +### Introducing `nominatim` command line tool + +The various php utilities have been replaced with a single `nominatim` +command line tool. Make sure to adapt any scripts. There is no direct 1:1 +matching between the old utilities and the commands of nominatim CLI. The +following list gives you a list of nominatim sub-commands that contain +functionality of each script: + +* ./utils/setup.php: `import`, `freeze`, `refresh` +* ./utils/update.php: `replication`, `add-data`, `index`, `refresh` +* ./utils/specialphrases.php: `special-phrases` +* ./utils/check_import_finished.php: `admin` +* ./utils/warm.php: `admin` +* ./utils/export.php: `export` + +Try `nominatim --help` for more information about each subcommand. + +`./utils/query.php` no longer exists in its old form. `nominatim search` +provides a replacement but returns different output. + +### Switch to normalized house numbers + +The housenumber column in the placex table uses now normalized version. +The automatic migration step will convert the column but this may take a +very long time. It is advisable to take the machine offline while doing that. ## 3.5.0 -> 3.6.0 @@ -68,6 +124,14 @@ configuration file, run the following command after updating: ./utils/setup.php --setup-website ``` +### Update SQL code + +To update the SQL code to the leatest version run: + +``` +./utils/setup.php --create-functions --enable-diff-updates --create-partition-functions +``` + ## 3.4.0 -> 3.5.0 ### New Wikipedia/Wikidata importance tables