help='Continue import even when errors in SQL are present')
group3.add_argument('--index-noanalyse', action='store_true',
help='Do not perform analyse operations during index (expert only)')
- group3.add_argument('--no-superuser', action='store_true',
+ group3.add_argument('--only-import-data', action='store_true',
help='Do not attempt to create the database')
- group3.add_argument('--prepare-database', action='store_true',
+ group3.add_argument('--only-prepare-database', action='store_true',
help='Create the database but do not import any data')
if args.continue_at is None:
files = args.get_osm_file_list()
- if not files:
+ if not files and not args.only_prepare_database:
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.")
- complete_import = not args.no_superuser and not args.prepare_database
+ if args.only_import_data and args.only_prepare_database:
+ raise UsageError(
+ "Cannot use --only-import-data and --only-prepare-database together."
+ )
- if args.prepare_database or complete_import:
+ if args.only_prepare_database or self._is_complete_import(args):
LOG.warning('Creating database')
database_import.setup_database_skeleton(args.config.get_libpq_dsn(),
rouser=args.config.DATABASE_WEBUSER)
-
- if not complete_import:
+
+ if not self._is_complete_import(args):
return 0
-
- if not args.prepare_database or args.no_superuser or complete_import:
+
+ if not args.only_prepare_database or \
+ args.only_import_data or \
+ self._is_complete_import(args):
+ # Check if the correct plugins are installed
+ database_import.check_existing_database_plugins(args.config.get_libpq_dsn())
LOG.warning('Setting up country tables')
country_info.setup_country_tables(args.config.get_libpq_dsn(),
args.config.lib_dir.data,
return 0
+ def _is_complete_import(self, args: NominatimArgs) -> bool:
+ """ Determine if the import is complete or if only the database should be prepared.
+ """
+ return not args.only_import_data and not args.only_prepare_database
+
def _setup_tables(self, config: Configuration, reverse_only: bool) -> None:
""" Set up the basic database layout: tables, indexes and functions.