mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-13 06:14:07 +00:00
permit import of tiger after freeze
This commit is contained in:
@@ -65,14 +65,14 @@ class UpdateAddData:
|
|||||||
def run(self, args: NominatimArgs) -> int:
|
def run(self, args: NominatimArgs) -> int:
|
||||||
from ..tools import add_osm_data
|
from ..tools import add_osm_data
|
||||||
|
|
||||||
|
if args.tiger_data:
|
||||||
|
return asyncio.run(self._add_tiger_data(args))
|
||||||
|
|
||||||
with connect(args.config.get_libpq_dsn()) as conn:
|
with connect(args.config.get_libpq_dsn()) as conn:
|
||||||
if is_frozen(conn):
|
if is_frozen(conn):
|
||||||
print('Database is marked frozen. New data can\'t be added.')
|
print('Database is marked frozen. New data can\'t be added.')
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if args.tiger_data:
|
|
||||||
return asyncio.run(self._add_tiger_data(args))
|
|
||||||
|
|
||||||
osm2pgsql_params = args.osm2pgsql_options(default_cache=1000, default_threads=1)
|
osm2pgsql_params = args.osm2pgsql_options(default_cache=1000, default_threads=1)
|
||||||
if args.file or args.diff:
|
if args.file or args.diff:
|
||||||
return add_osm_data.add_data_from_file(args.config.get_libpq_dsn(),
|
return add_osm_data.add_data_from_file(args.config.get_libpq_dsn(),
|
||||||
|
|||||||
@@ -17,13 +17,12 @@ import tarfile
|
|||||||
from psycopg.types.json import Json
|
from psycopg.types.json import Json
|
||||||
|
|
||||||
from ..config import Configuration
|
from ..config import Configuration
|
||||||
from ..db.connection import connect
|
from ..db.connection import connect, table_exists
|
||||||
from ..db.sql_preprocessor import SQLPreprocessor
|
from ..db.sql_preprocessor import SQLPreprocessor
|
||||||
from ..errors import UsageError
|
from ..errors import UsageError
|
||||||
from ..db.query_pool import QueryPool
|
from ..db.query_pool import QueryPool
|
||||||
from ..data.place_info import PlaceInfo
|
from ..data.place_info import PlaceInfo
|
||||||
from ..tokenizer.base import AbstractTokenizer
|
from ..tokenizer.base import AbstractTokenizer
|
||||||
from . import freeze
|
|
||||||
|
|
||||||
LOG = logging.getLogger()
|
LOG = logging.getLogger()
|
||||||
|
|
||||||
@@ -90,16 +89,19 @@ async def add_tiger_data(data_dir: str, config: Configuration, threads: int,
|
|||||||
"""
|
"""
|
||||||
dsn = config.get_libpq_dsn()
|
dsn = config.get_libpq_dsn()
|
||||||
|
|
||||||
with connect(dsn) as conn:
|
|
||||||
if freeze.is_frozen(conn):
|
|
||||||
raise UsageError("Tiger cannot be imported when database frozen (Github issue #3048)")
|
|
||||||
|
|
||||||
with TigerInput(data_dir) as tar:
|
with TigerInput(data_dir) as tar:
|
||||||
if not tar:
|
if not tar:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
with connect(dsn) as conn:
|
with connect(dsn) as conn:
|
||||||
sql = SQLPreprocessor(conn, config)
|
sql = SQLPreprocessor(conn, config)
|
||||||
|
|
||||||
|
if not table_exists(conn, 'search_name'):
|
||||||
|
raise UsageError(
|
||||||
|
"Cannot perform tiger import: required tables are missing. "
|
||||||
|
"See https://github.com/osm-search/Nominatim/issues/2463 for details."
|
||||||
|
)
|
||||||
|
|
||||||
sql.run_sql_file(conn, 'tiger_import_start.sql')
|
sql.run_sql_file(conn, 'tiger_import_start.sql')
|
||||||
|
|
||||||
# Reading files and then for each file line handling
|
# Reading files and then for each file line handling
|
||||||
|
|||||||
Reference in New Issue
Block a user