Added --prepare-database flag

This commit is contained in:
Robbe Haesendonck
2023-09-20 13:00:39 +02:00
committed by Sarah Hoffmann
parent ba5ec80611
commit 992703b15e
2 changed files with 36 additions and 24 deletions

View File

@@ -88,6 +88,7 @@ class NominatimArgs:
ignore_errors: bool ignore_errors: bool
index_noanalyse: bool index_noanalyse: bool
no_superuser: bool no_superuser: bool
prepare_database: bool
# Arguments to 'index' # Arguments to 'index'
boundaries_only: bool boundaries_only: bool

View File

@@ -67,6 +67,8 @@ class SetupAll:
help='Do not perform analyse operations during index (expert only)') help='Do not perform analyse operations during index (expert only)')
group3.add_argument('--no-superuser', action='store_true', group3.add_argument('--no-superuser', action='store_true',
help='Do not attempt to create the database') help='Do not attempt to create the database')
group3.add_argument('--prepare-database', action='store_true',
help='Create the database but do not import any data')
def run(self, args: NominatimArgs) -> int: # pylint: disable=too-many-statements def run(self, args: NominatimArgs) -> int: # pylint: disable=too-many-statements
@@ -82,38 +84,47 @@ class SetupAll:
files = args.get_osm_file_list() files = args.get_osm_file_list()
if not files: if not files:
raise UsageError("No input files (use --osm-file).") raise UsageError("No input files (use --osm-file).")
if args.no_superuser and args.prepare_database:
raise UsageError("Cannot use --no-superuser and --prepare-database together.")
if not args.no_superuser: complete_import = not args.no_superuser and not args.prepare_database
if args.prepare_database or complete_import:
LOG.warning('Creating database') LOG.warning('Creating database')
database_import.setup_database_skeleton(args.config.get_libpq_dsn(), database_import.setup_database_skeleton(args.config.get_libpq_dsn(),
rouser=args.config.DATABASE_WEBUSER) rouser=args.config.DATABASE_WEBUSER)
if not complete_import:
return 0
if not args.prepare_database or args.no_superuser or complete_import:
LOG.warning('Setting up country tables')
country_info.setup_country_tables(args.config.get_libpq_dsn(),
args.config.lib_dir.data,
args.no_partitions)
LOG.warning('Setting up country tables') LOG.warning('Importing OSM data file')
country_info.setup_country_tables(args.config.get_libpq_dsn(), database_import.import_osm_data(files,
args.config.lib_dir.data, args.osm2pgsql_options(0, 1),
args.no_partitions) drop=args.no_updates,
ignore_errors=args.ignore_errors)
LOG.warning('Importing OSM data file') LOG.warning('Importing wikipedia importance data')
database_import.import_osm_data(files, data_path = Path(args.config.WIKIPEDIA_DATA_PATH or args.project_dir)
args.osm2pgsql_options(0, 1), if refresh.import_wikipedia_articles(args.config.get_libpq_dsn(),
drop=args.no_updates, data_path) > 0:
ignore_errors=args.ignore_errors) LOG.error('Wikipedia importance dump file not found. '
'Calculating importance values of locations will not '
'use Wikipedia importance data.')
LOG.warning('Importing wikipedia importance data') LOG.warning('Importing secondary importance raster data')
data_path = Path(args.config.WIKIPEDIA_DATA_PATH or args.project_dir) if refresh.import_secondary_importance(args.config.get_libpq_dsn(),
if refresh.import_wikipedia_articles(args.config.get_libpq_dsn(), args.project_dir) != 0:
data_path) > 0: LOG.error('Secondary importance file not imported. '
LOG.error('Wikipedia importance dump file not found. ' 'Falling back to default ranking.')
'Calculating importance values of locations will not '
'use Wikipedia importance data.')
LOG.warning('Importing secondary importance raster data') self._setup_tables(args.config, args.reverse_only)
if refresh.import_secondary_importance(args.config.get_libpq_dsn(),
args.project_dir) != 0:
LOG.error('Secondary importance file not imported. '
'Falling back to default ranking.')
self._setup_tables(args.config, args.reverse_only)
if args.continue_at is None or args.continue_at == 'load-data': if args.continue_at is None or args.continue_at == 'load-data':
LOG.warning('Initialise tables') LOG.warning('Initialise tables')