class SetupAll:
"""\
Create a new Nominatim database from an OSM file.
+
+ This sub-command sets up a new Nominatim database from scratch starting
+ with creating a new database in Postgresql. The user running this command
+ needs superuser rights on the database.
"""
@staticmethod
group = group_name.add_mutually_exclusive_group(required=True)
group.add_argument('--osm-file', metavar='FILE', action='append',
help='OSM file to be imported'
- ' (repeat for importing multiple files.')
+ ' (repeat for importing multiple files)')
group.add_argument('--continue', dest='continue_at',
choices=['load-data', 'indexing', 'db-postprocess'],
help='Continue an import that was interrupted')
group.add_argument('--ignore-errors', action='store_true',
help='Continue import even when errors in SQL are present')
group.add_argument('--index-noanalyse', action='store_true',
- help='Do not perform analyse operations during index')
+ help='Do not perform analyse operations during index (expert only)')
@staticmethod
def run(args):
- from ..tools import database_import, refresh, postcodes, freeze
+ from ..tools import database_import, refresh, postcodes, freeze, country_info
from ..indexer.indexer import Indexer
+ country_info.setup_country_config(args.config)
+
if args.continue_at is None:
files = args.get_osm_file_list()
+ LOG.warning('Creating database')
database_import.setup_database_skeleton(args.config.get_libpq_dsn(),
- args.data_dir,
- args.no_partitions,
rouser=args.config.DATABASE_WEBUSER)
+ LOG.warning('Setting up country tables')
+ country_info.setup_country_tables(args.config.get_libpq_dsn(),
+ args.data_dir,
+ args.no_partitions)
+
LOG.warning('Importing OSM data file')
database_import.import_osm_data(files,
args.osm2pgsql_options(0, 1),
database_import.create_search_indices(conn, args.config,
drop=args.no_updates)
LOG.warning('Create search index for default country names.')
- database_import.create_country_names(conn, tokenizer,
- args.config.LANGUAGES)
- conn.commit()
+ country_info.create_country_names(conn, tokenizer,
+ args.config.LANGUAGES)
if args.no_updates:
freeze.drop_update_tables(conn)
tokenizer.finalize_import(args.config)