Skip to content

Commit

Permalink
make sure SQLAlchemy can handle the loaded dialect
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
lonvia committed Aug 20, 2024
1 parent 7bbdf57 commit 3c05d98
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
2 changes: 1 addition & 1 deletion nominatim/clicmd/replication.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 3 additions & 1 deletion nominatim/db/async_core_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 3c05d98

Please sign in to comment.