]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/clicmd/setup.py
Fixed ci-tests, osm-file flag
[nominatim.git] / nominatim / clicmd / setup.py
index 5114db83664c47604dc2a8a6d621038d1c298e18..4df14bc519608f0281cea6ea8f1b60fe11d07934 100644 (file)
@@ -65,9 +65,9 @@ class SetupAll:
                            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')
 
 
@@ -82,23 +82,27 @@ class SetupAll:
 
         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,
@@ -171,6 +175,11 @@ class SetupAll:
 
         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.