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 b795650694..192a931426 100644 --- a/nominatim/clicmd/replication.py +++ b/nominatim/clicmd/replication.py @@ -142,7 +142,7 @@ def _update(self, args: NominatimArgs) -> None: 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 4a4b9f290f..a5d0b7934f 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