2022-01-03 18:23:58 +03:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#
|
|
|
|
# This file is part of Nominatim. (https://nominatim.org)
|
|
|
|
#
|
|
|
|
# Copyright (C) 2022 by the Nominatim developer community.
|
|
|
|
# For a full list of authors see the git log.
|
2021-02-17 23:43:15 +03:00
|
|
|
"""
|
|
|
|
Implementation of the 'freeze' subcommand.
|
|
|
|
"""
|
2022-07-17 19:31:51 +03:00
|
|
|
import argparse
|
2021-02-17 23:43:15 +03:00
|
|
|
|
2021-04-16 15:20:09 +03:00
|
|
|
from nominatim.db.connection import connect
|
2022-07-17 19:31:51 +03:00
|
|
|
from nominatim.clicmd.args import NominatimArgs
|
2021-02-17 23:43:15 +03:00
|
|
|
|
|
|
|
# Do not repeat documentation of subcommand classes.
|
|
|
|
# pylint: disable=C0111
|
|
|
|
# Using non-top-level imports to avoid eventually unused imports.
|
|
|
|
# pylint: disable=E0012,C0415
|
|
|
|
|
|
|
|
class SetupFreeze:
|
|
|
|
"""\
|
|
|
|
Make database read-only.
|
|
|
|
|
|
|
|
About half of data in the Nominatim database is kept only to be able to
|
|
|
|
keep the data up-to-date with new changes made in OpenStreetMap. This
|
|
|
|
command drops all this data and only keeps the part needed for geocoding
|
|
|
|
itself.
|
|
|
|
|
|
|
|
This command has the same effect as the `--no-updates` option for imports.
|
|
|
|
"""
|
|
|
|
|
2022-07-17 19:31:51 +03:00
|
|
|
def add_args(self, parser: argparse.ArgumentParser) -> None:
|
2021-02-17 23:43:15 +03:00
|
|
|
pass # No options
|
|
|
|
|
2022-07-17 19:31:51 +03:00
|
|
|
|
|
|
|
def run(self, args: NominatimArgs) -> int:
|
2021-02-17 23:43:15 +03:00
|
|
|
from ..tools import freeze
|
|
|
|
|
2021-02-23 12:11:21 +03:00
|
|
|
with connect(args.config.get_libpq_dsn()) as conn:
|
|
|
|
freeze.drop_update_tables(conn)
|
2022-07-03 19:36:33 +03:00
|
|
|
freeze.drop_flatnode_file(args.config.get_path('FLATNODE_FILE'))
|
2021-02-17 23:43:15 +03:00
|
|
|
|
|
|
|
return 0
|