]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/clicmd/transition.py
automatic migration from 3.6 release
[nominatim.git] / nominatim / clicmd / transition.py
index 210eec70a2ce656995f3258f20b3e68837ffd609..b8db1a38ee745fd2062f2dd63aa49d21707e3710 100644 (file)
@@ -35,8 +35,14 @@ class AdminTransition:
                            help='Import a osm file')
         group.add_argument('--load-data', action='store_true',
                            help='Copy data to live tables from import table')
+        group.add_argument('--create-tables', action='store_true',
+                           help='Create main tables')
+        group.add_argument('--create-partition-tables', action='store_true',
+                           help='Create required partition tables')
         group.add_argument('--index', action='store_true',
                            help='Index the data')
+        group.add_argument('--create-search-indices', action='store_true',
+                           help='Create additional indices required for search and update')
         group = parser.add_argument_group('Options')
         group.add_argument('--no-partitions', action='store_true',
                            help='Do not partition search indices')
@@ -50,10 +56,13 @@ class AdminTransition:
                            help='Do not perform analyse operations during index')
         group.add_argument('--ignore-errors', action='store_true',
                            help="Ignore certain erros on import.")
+        group.add_argument('--reverse-only', action='store_true',
+                           help='Do not create search tables and indexes')
 
     @staticmethod
     def run(args):
         from ..tools import database_import
+        from ..tools import refresh
 
         if args.create_db:
             LOG.warning('Create DB')
@@ -80,6 +89,20 @@ class AdminTransition:
                                             drop=args.drop,
                                             ignore_errors=args.ignore_errors)
 
+        if args.create_tables:
+            LOG.warning('Create Tables')
+            with connect(args.config.get_libpq_dsn()) as conn:
+                database_import.create_tables(conn, args.config, args.sqllib_dir, args.reverse_only)
+                refresh.load_address_levels_from_file(conn, Path(args.config.ADDRESS_LEVEL_CONFIG))
+                refresh.create_functions(conn, args.config, args.sqllib_dir,
+                                         enable_diff_updates=False)
+                database_import.create_table_triggers(conn, args.config, args.sqllib_dir)
+
+        if args.create_partition_tables:
+            LOG.warning('Create Partition Tables')
+            with connect(args.config.get_libpq_dsn()) as conn:
+                database_import.create_partition_tables(conn, args.config, args.sqllib_dir)
+
         if args.load_data:
             LOG.warning('Load data')
             with connect(args.config.get_libpq_dsn()) as conn:
@@ -99,3 +122,8 @@ class AdminTransition:
             from ..indexer.indexer import Indexer
             indexer = Indexer(args.config.get_libpq_dsn(), args.threads or 1)
             indexer.index_full()
+
+        if args.create_search_indices:
+            LOG.warning('Create Search indices')
+            with connect(args.config.get_libpq_dsn()) as conn:
+                database_import.create_search_indices(conn, args.config, args.sqllib_dir, args.drop)