X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/6e89310a9285f1ad15d8002bf68f578eada367a0..2fe8b98d557cf68a15763a762fb77d3a9522af98:/src/nominatim_db/clicmd/admin.py?ds=sidebyside diff --git a/src/nominatim_db/clicmd/admin.py b/src/nominatim_db/clicmd/admin.py index 66dbbe99..1edff174 100644 --- a/src/nominatim_db/clicmd/admin.py +++ b/src/nominatim_db/clicmd/admin.py @@ -11,8 +11,8 @@ import logging import argparse import random -import nominatim_api as napi -from nominatim_core.db.connection import connect +from ..errors import UsageError +from ..db.connection import connect, table_exists from .args import NominatimArgs # Do not repeat documentation of subcommand classes. @@ -95,6 +95,11 @@ class AdminFuncs: def _warm(self, args: NominatimArgs) -> int: + try: + import nominatim_api as napi + except ModuleNotFoundError as exp: + raise UsageError("Warming requires nominatim API. " + "Install with 'pip install nominatim-api'.") from exp LOG.warning('Warming database caches') api = napi.NominatimAPI(args.project_dir) @@ -110,7 +115,7 @@ class AdminFuncs: tokenizer = tokenizer_factory.get_tokenizer_for_db(args.config) with connect(args.config.get_libpq_dsn()) as conn: - if conn.table_exists('search_name'): + if table_exists(conn, 'search_name'): words = tokenizer.most_frequent_words(conn, 1000) else: words = []