X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/3a0a4b9175f81c2f0362547e90599aa57200f576..6ba06d1eb4302d3727a552180941a3a11efadc21:/nominatim/clicmd/setup.py diff --git a/nominatim/clicmd/setup.py b/nominatim/clicmd/setup.py index ab57d59b..fe7c8dc1 100644 --- a/nominatim/clicmd/setup.py +++ b/nominatim/clicmd/setup.py @@ -6,11 +6,10 @@ from pathlib import Path import psutil -from ..tools.exec_utils import run_legacy_script -from ..db.connection import connect -from ..db import status, properties -from ..version import NOMINATIM_VERSION -from ..errors import UsageError +from nominatim.db.connection import connect +from nominatim.db import status, properties +from nominatim.version import NOMINATIM_VERSION +from nominatim.errors import UsageError # Do not repeat documentation of subcommand classes. # pylint: disable=C0111 @@ -39,11 +38,11 @@ class SetupAll: group.add_argument('--reverse-only', action='store_true', help='Do not create tables and indexes for searching') group.add_argument('--no-partitions', action='store_true', - help="""Do not partition search indices - (speeds up import of single country extracts)""") + help=("Do not partition search indices " + "(speeds up import of single country extracts)")) group.add_argument('--no-updates', action='store_true', - help="""Do not keep tables that are only needed for - updating the database later""") + help="Do not keep tables that are only needed for " + "updating the database later") group = parser.add_argument_group('Expert options') group.add_argument('--ignore-errors', action='store_true', help='Continue import even when errors in SQL are present') @@ -56,6 +55,7 @@ class SetupAll: from ..tools import database_import from ..tools import refresh from ..indexer.indexer import Indexer + from ..tools import postcodes if args.osm_file and not Path(args.osm_file).is_file(): LOG.fatal("OSM file '%s' does not exist.", args.osm_file) @@ -79,20 +79,22 @@ class SetupAll: drop=args.no_updates, ignore_errors=args.ignore_errors) - LOG.warning('Create functions (1st pass)') with connect(args.config.get_libpq_dsn()) as conn: + LOG.warning('Create functions (1st pass)') refresh.create_functions(conn, args.config, args.sqllib_dir, False, False) - - LOG.warning('Create tables') - params = ['setup.php', '--create-tables', '--create-partition-tables'] - if args.reverse_only: - params.append('--reverse-only') - run_legacy_script(*params, nominatim_env=args, - throw_on_fail=not args.ignore_errors) - - LOG.warning('Create functions (2nd pass)') - with connect(args.config.get_libpq_dsn()) as conn: + LOG.warning('Create tables') + database_import.create_tables(conn, args.config, args.sqllib_dir, + reverse_only=args.reverse_only) + refresh.load_address_levels_from_file(conn, Path(args.config.ADDRESS_LEVEL_CONFIG)) + LOG.warning('Create functions (2nd pass)') + refresh.create_functions(conn, args.config, args.sqllib_dir, + False, False) + LOG.warning('Create table triggers') + database_import.create_table_triggers(conn, args.config, args.sqllib_dir) + LOG.warning('Create partition tables') + database_import.create_partition_tables(conn, args.config, args.sqllib_dir) + LOG.warning('Create functions (3rd pass)') refresh.create_functions(conn, args.config, args.sqllib_dir, False, False) @@ -114,8 +116,7 @@ class SetupAll: args.threads or psutil.cpu_count() or 1) LOG.warning('Calculate postcodes') - run_legacy_script('setup.php', '--calculate-postcodes', - nominatim_env=args, throw_on_fail=not args.ignore_errors) + postcodes.import_postcodes(args.config.get_libpq_dsn(), args.project_dir) if args.continue_at is None or args.continue_at in ('load-data', 'indexing'): LOG.warning('Indexing places') @@ -124,10 +125,12 @@ class SetupAll: indexer.index_full(analyse=not args.index_noanalyse) LOG.warning('Post-process tables') - params = ['setup.php', '--create-search-indices', '--create-country-names'] - if args.no_updates: - params.append('--drop') - run_legacy_script(*params, nominatim_env=args, throw_on_fail=not args.ignore_errors) + with connect(args.config.get_libpq_dsn()) as conn: + database_import.create_search_indices(conn, args.config, + args.sqllib_dir, + drop=args.no_updates) + LOG.warning('Create search index for default country names.') + database_import.create_country_names(conn, args.config) webdir = args.project_dir / 'website' LOG.warning('Setup website at %s', webdir)