From cd843860045561728d6b5bd08edf44beb86163f9 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Mon, 9 Mar 2026 10:10:28 +0100 Subject: [PATCH] add migration to backfill missing importance values --- src/nominatim_db/tools/migration.py | 19 ++++++++++++++++++- src/nominatim_db/version.py | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/nominatim_db/tools/migration.py b/src/nominatim_db/tools/migration.py index 7d8e8ce9..bedccb8a 100644 --- a/src/nominatim_db/tools/migration.py +++ b/src/nominatim_db/tools/migration.py @@ -14,7 +14,7 @@ from ..errors import UsageError from ..config import Configuration from ..db import properties from ..db.connection import connect, Connection, \ - table_exists, register_hstore + table_exists, register_hstore, table_has_column from ..db.sql_preprocessor import SQLPreprocessor from ..version import NominatimVersion, NOMINATIM_VERSION, parse_version from ..tokenizer import factory as tokenizer_factory @@ -420,3 +420,20 @@ def create_place_interpolation_table(conn: Connection, config: Configuration, ** SET type = coalesce(address->'interpolation', 'all'), address = address - 'interpolation'::TEXT; """) + + +@_migration(5, 2, 99, 4) +def backfill_importance(conn: Connection, **_: Any) -> None: + """ Backfill missing importance values. + """ + conn.execute("""UPDATE placex + SET importance = 0.40001 - (rank_search::float / 75) + WHERE importance is NULL OR importance <= 0 + """) + if table_exists(conn, 'search_name')\ + and table_has_column(conn, 'search_name', 'search_rank'): + conn.execute("""UPDATE search_name + SET importance = 0.40001 - (search_rank::float / 75) + WHERE importance is NULL OR importance <= 0 + """) + conn.execute("ALTER TABLE search_name DROP COLUMN search_rank") diff --git a/src/nominatim_db/version.py b/src/nominatim_db/version.py index 761803c1..b730d95f 100644 --- a/src/nominatim_db/version.py +++ b/src/nominatim_db/version.py @@ -55,7 +55,7 @@ def parse_version(version: str) -> NominatimVersion: return NominatimVersion(*[int(x) for x in parts[:2] + parts[2].split('-')]) -NOMINATIM_VERSION = parse_version('5.2.99-3') +NOMINATIM_VERSION = parse_version('5.2.99-4') POSTGRESQL_REQUIRED_VERSION = (12, 0) POSTGIS_REQUIRED_VERSION = (3, 0)