forked from hans/Nominatim
bdd: factor out reindexing on updates
This commit is contained in:
@@ -191,6 +191,20 @@ class NominatimEnvironment:
|
|||||||
if not self.keep_scenario_db:
|
if not self.keep_scenario_db:
|
||||||
self.db_drop_database(self.test_db)
|
self.db_drop_database(self.test_db)
|
||||||
|
|
||||||
|
def reindex_placex(self, db):
|
||||||
|
""" Run the indexing step until all data in the placex has
|
||||||
|
been processed. Indexing during updates can produce more data
|
||||||
|
to index under some circumstances. That is why indexing may have
|
||||||
|
to be run multiple times.
|
||||||
|
"""
|
||||||
|
with db.cursor() as cur:
|
||||||
|
while True:
|
||||||
|
self.run_update_script('index')
|
||||||
|
|
||||||
|
cur.execute("SELECT 'a' FROM placex WHERE indexed_status != 0 LIMIT 1")
|
||||||
|
if cur.rowcount == 0:
|
||||||
|
return
|
||||||
|
|
||||||
def run_setup_script(self, *args, **kwargs):
|
def run_setup_script(self, *args, **kwargs):
|
||||||
""" Run the Nominatim setup script with the given arguments.
|
""" Run the Nominatim setup script with the given arguments.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -205,13 +205,7 @@ def update_place_table(context):
|
|||||||
for row in context.table:
|
for row in context.table:
|
||||||
PlaceColumn(context).add_row(row, False).db_insert(cur)
|
PlaceColumn(context).add_row(row, False).db_insert(cur)
|
||||||
|
|
||||||
while True:
|
context.nominatim.reindex_placex(context.db)
|
||||||
context.nominatim.run_update_script('index')
|
|
||||||
|
|
||||||
cur.execute("SELECT 'a' FROM placex WHERE indexed_status != 0 LIMIT 1")
|
|
||||||
if cur.rowcount == 0:
|
|
||||||
break
|
|
||||||
|
|
||||||
check_database_integrity(context)
|
check_database_integrity(context)
|
||||||
|
|
||||||
@when("updating postcodes")
|
@when("updating postcodes")
|
||||||
@@ -227,13 +221,7 @@ def delete_places(context, oids):
|
|||||||
where, params = NominatimID(oid).table_select()
|
where, params = NominatimID(oid).table_select()
|
||||||
cur.execute("DELETE FROM place WHERE " + where, params)
|
cur.execute("DELETE FROM place WHERE " + where, params)
|
||||||
|
|
||||||
while True:
|
context.nominatim.reindex_placex(context.db)
|
||||||
context.nominatim.run_update_script('index')
|
|
||||||
|
|
||||||
with context.db.cursor() as cur:
|
|
||||||
cur.execute("SELECT 'a' FROM placex WHERE indexed_status != 0 LIMIT 1")
|
|
||||||
if cur.rowcount == 0:
|
|
||||||
break
|
|
||||||
|
|
||||||
################################ THEN ##################################
|
################################ THEN ##################################
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user