Nominatim/nominatim/tools/freeze.py

44 lines
1010 B
Python
Raw Normal View History

2021-02-17 23:43:15 +03:00
"""
Functions for removing unnecessary data from the database.
"""
from pathlib import Path
UPDATE_TABLES = [
'address_levels',
'gb_postcode',
'import_osmosis_log',
'import_polygon_%',
'location_area%',
'location_road%',
'place',
'planet_osm_%',
'search_name_%',
'us_postcode',
'wikipedia_%'
]
def drop_update_tables(conn):
""" Drop all tables only necessary for updating the database from
OSM replication data.
"""
where = ' or '.join(["(tablename LIKE '{}')".format(t) for t in UPDATE_TABLES])
with conn.cursor() as cur:
cur.execute("SELECT tablename FROM pg_tables WHERE " + where)
tables = [r[0] for r in cur]
for table in tables:
cur.execute('DROP TABLE IF EXISTS "{}" CASCADE'.format(table))
conn.commit()
def drop_flatnode_file(fname):
""" Remove the flatnode file if it exists.
"""
if fname:
fpath = Path(fname)
if fpath.exists():
fpath.unlink()