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.add_argument('--create-country-names', action='store_true',
+ help='Create search index for default country names.')
group = parser.add_argument_group('Options')
group.add_argument('--no-partitions', action='store_true',
help='Do not partition search indices')
help='Size of cache to be used by osm2pgsql (in MB)')
group.add_argument('--no-analyse', action='store_true',
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')
+ group.add_argument('--tiger-data', metavar='FILE',
+ help='File to import')
@staticmethod
- def run(args):
- from ..tools import database_import
+ def run(args): # pylint: disable=too-many-statements
+ from ..tools import database_import, tiger_data
+ from ..tools import refresh
if args.create_db:
LOG.warning('Create DB')
raise UsageError('Missing required --osm-file argument')
database_import.import_osm_data(Path(args.osm_file),
args.osm2pgsql_options(0, 1),
- drop=args.drop)
+ 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')
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)
+
+ if args.tiger_data:
+ LOG.warning('Tiger data')
+ tiger_data.add_tiger_data(args.config.get_libpq_dsn(),
+ args.tiger_data,
+ args.threads or 1,
+ args.config,
+ args.sqllib_dir)
+
+ if args.create_country_names:
+ LOG.warning('Create search index for default country names.')
+ with connect(args.config.get_libpq_dsn()) as conn:
+ database_import.create_country_names(conn, args.config)