From 3c05d98b809fa8ce5916e3b472664b3d6015ba2f Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 20 Aug 2024 10:10:09 +0200 Subject: [PATCH] make sure SQLAlchemy can handle the loaded dialect The psycopg dialect was only added in SQLAlchemy 2.0. To avoid loading errors when SQLAlchemy 1.4 is installed together with psycopg3, check that the dialect is really available. --- nominatim/clicmd/replication.py | 2 +- nominatim/db/async_core_library.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nominatim/clicmd/replication.py b/nominatim/clicmd/replication.py index b7956506..192a9314 100644 --- a/nominatim/clicmd/replication.py +++ b/nominatim/clicmd/replication.py @@ -142,7 +142,7 @@ class UpdateReplication: if not args.do_index: LOG.fatal("Indexing cannot be disabled when running updates continuously.") raise UsageError("Bad argument '--no-index'.") - recheck_interval = args.config.get_int('REPLICATION_RECHECK_INTERVAL') + recheck_interval = args.config.get_int('REPLICATION_RECHECK_INTERVAL') tokenizer = tokenizer_factory.get_tokenizer_for_db(args.config) indexer = Indexer(args.config.get_libpq_dsn(), tokenizer, args.threads or 1) diff --git a/nominatim/db/async_core_library.py b/nominatim/db/async_core_library.py index 4a4b9f29..a5d0b793 100644 --- a/nominatim/db/async_core_library.py +++ b/nominatim/db/async_core_library.py @@ -7,15 +7,17 @@ """ Import the base library to use with asynchronous SQLAlchemy. """ -# pylint: disable=invalid-name +# pylint: disable=invalid-name, ungrouped-imports, unused-import from typing import Any try: + import sqlalchemy.dialects.postgresql.psycopg import psycopg PGCORE_LIB = 'psycopg' PGCORE_ERROR: Any = psycopg.Error except ModuleNotFoundError: + import sqlalchemy.dialects.postgresql.asyncpg import asyncpg PGCORE_LIB = 'asyncpg' PGCORE_ERROR = asyncpg.PostgresError