mediagis / nominatim-docker

100% working container for Nominatim
Creative Commons Zero v1.0 Universal
1.08k stars 442 forks source link

Postgres doesn't start #418

Open devopsnot opened 1 year ago

devopsnot commented 1 year ago

I am having the following error when starting my Nominatim import process using an external database.

-Docker compose -

version: '3'

networks:
  nominatim_import:
    external: false
    driver: overlay

services:
  nominatim_import:
    image: mediagis/nominatim:4.1
    command: 
    - /bin/bash
    - -ec
    - |
        nominatim import --osm-file data.osm.pbf --threads $$THREADS
        nominatim index --threads $$THREADS
        nominatim admin --check-database

        if [ "$$REPLICATION_ENABLED" = "true" ]; then
          nominatim replication --init
          if [ "$$FREEZE" = "true" ]; then
            echo "Skipping freeze because REPLICATION_URL is not empty"
          fi
        else
          if [ "$$FREEZE" = "true" ]; then
            echo "Freezing database"
            nominatim freeze
          fi
        fi;
    working_dir: /nominatim
    environment:
    - NOMINATIM_IMPORT_STYLE=full
    - NOMINATIM_DATABASE_DSN=pgsql:host=${NOMINATIM_DB_HOST};port=${NOMINATIM_DB_PORT};user=${NOMINATIM_DB_USER};password=${NOMINATIM_DB_PASSWORD};dbname=${NOMINATIM_DB_NAME}

    - REPLICATION_ENABLED=true
    - THREADS=${IMPORT_THREADS:-16}
    - NOMINATIM_DATABASE_WEBUSER=${NOMINATIM_DB_USER}
    deploy:
      restart_policy:
        condition: none
    networks:
    - nominatim_import
    volumes:
    - ${OSM_PBF_FOLDER:-/var/lib/docker/data/osm/geofabrik}/${OSM_PBF_FILE:-brazil-latest.osm.pbf}:/nominatim/data.osm.pbf
`2023-01-11 11:52:58: Using project directory: /nominatim
2023-01-11 11:53:01: Creating database
2023-01-11 11:53:02: Setting up country tables
Traceback (most recent call last):
  File "/usr/local/bin/nominatim", line 14, in <module>
    exit(cli.nominatim(module_dir='/usr/local/lib/nominatim/module',
  File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 264, in nominatim
    return parser.run(**kwargs)
  File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 126, in run
    return args.command.run(args)
  File "/usr/local/lib/nominatim/lib-python/nominatim/clicmd/setup.py", line 89, in run
    country_info.setup_country_tables(args.config.get_libpq_dsn(),
  File "/usr/local/lib/nominatim/lib-python/nominatim/data/country_info.py", line 142, in setup_country_tables
    cur.execute_values(
  File "/usr/local/lib/nominatim/lib-python/nominatim/db/connection.py", line 46, in execute_values
    psycopg2.extras.execute_values(self, sql, argslist, template=template)
  File "/usr/lib/python3/dist-packages/psycopg2/extras.py", line 1270, in execute_values
    cur.execute(b''.join(parts))
  File "/usr/local/lib/nominatim/lib-python/nominatim/db/connection.py", line 36, in execute
    super().execute(query, args)
  File "/usr/lib/python3/dist-packages/psycopg2/extras.py", line 146, in execute
    return super().execute(query, vars)
psycopg2.errors.UntranslatableCharacter: character with byte sequence 0xd0 0x90 in encoding "UTF8" has no equivalent in encoding "LATIN1"`

psycopg2.errors.UntranslatableCharacter: character with byte sequence 0xd0 0x90 in encoding "UTF8" has no equivalent in encoding "LATIN1"

mtmail commented 1 year ago

Can you check the character encoding of the database? E.g. (when database is named 'nominatim')

$ psql nominatim -c 'SHOW SERVER_ENCODING'
 server_encoding
-----------------
 UTF8
(1 row)