X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/8ed096f938e27cc814a446dcc15682ceb3bd5e9e..657aae5f1bfebb99df5b9e6aa00c5b89269e4910:/nominatim/tools/migration.py diff --git a/nominatim/tools/migration.py b/nominatim/tools/migration.py index 0c88493b..e864ce52 100644 --- a/nominatim/tools/migration.py +++ b/nominatim/tools/migration.py @@ -46,7 +46,6 @@ def migrate(config: Configuration, paths: Any) -> int: db_version = _guess_version(conn) - has_run_migration = False for version, func in _MIGRATION_FUNCTIONS: if db_version < version or \ (db_version == (3, 5, 0, 99) and version == (3, 5, 0, 99)): @@ -55,13 +54,11 @@ def migrate(config: Configuration, paths: Any) -> int: kwargs = dict(conn=conn, config=config, paths=paths) func(**kwargs) conn.commit() - has_run_migration = True - if has_run_migration: - LOG.warning('Updating SQL functions.') - refresh.create_functions(conn, config) - tokenizer = tokenizer_factory.get_tokenizer_for_db(config) - tokenizer.update_sql_functions(config) + LOG.warning('Updating SQL functions.') + refresh.create_functions(conn, config) + tokenizer = tokenizer_factory.get_tokenizer_for_db(config) + tokenizer.update_sql_functions(config) properties.set_property(conn, 'database_version', str(NOMINATIM_VERSION)) @@ -385,3 +382,13 @@ def add_improved_geometry_reverse_placenode_index(conn: Connection, **_: Any) -> WHERE rank_address between 4 and 25 AND type != 'postcode' AND name is not null AND linked_place_id is null AND osm_type = 'N' """) + +@_migration(4, 4, 99, 0) +def create_postcode_ara_lookup_index(conn: Connection, **_: Any) -> None: + """ Create index needed for looking up postcode areas from postocde points. + """ + with conn.cursor() as cur: + cur.execute("""CREATE INDEX IF NOT EXISTS idx_placex_postcode_areas + ON placex USING BTREE (country_code, postcode) + WHERE osm_type = 'R' AND class = 'boundary' AND type = 'postal_code' + """)