call freeze after running and non-updateable import

Some of the tables will have already been removed but
the tables for indexing are still there and should be
dropped.
This commit is contained in:
Sarah Hoffmann
2021-06-02 11:08:48 +02:00
parent cc2f152d70
commit 72625dc72a
2 changed files with 9 additions and 4 deletions

View File

@@ -52,10 +52,8 @@ class SetupAll:
@staticmethod @staticmethod
def run(args): # pylint: disable=too-many-statements def run(args): # pylint: disable=too-many-statements
from ..tools import database_import from ..tools import database_import, refresh, postcodes, freeze
from ..tools import refresh
from ..indexer.indexer import Indexer from ..indexer.indexer import Indexer
from ..tools import postcodes
from ..tokenizer import factory as tokenizer_factory from ..tokenizer import factory as tokenizer_factory
if args.osm_file and not Path(args.osm_file).is_file(): if args.osm_file and not Path(args.osm_file).is_file():
@@ -135,8 +133,12 @@ class SetupAll:
LOG.warning('Create search index for default country names.') LOG.warning('Create search index for default country names.')
database_import.create_country_names(conn, tokenizer, database_import.create_country_names(conn, tokenizer,
args.config.LANGUAGES) args.config.LANGUAGES)
conn.commit()
if args.no_updates:
freeze.drop_update_tables(conn)
tokenizer.finalize_import(args.config) tokenizer.finalize_import(args.config)
webdir = args.project_dir / 'website' webdir = args.project_dir / 'website'
LOG.warning('Setup website at %s', webdir) LOG.warning('Setup website at %s', webdir)
with connect(args.config.get_libpq_dsn()) as conn: with connect(args.config.get_libpq_dsn()) as conn:

View File

@@ -17,7 +17,10 @@ def compute_database_date(conn):
""" """
# First, find the node with the highest ID in the database # First, find the node with the highest ID in the database
with conn.cursor() as cur: with conn.cursor() as cur:
if conn.table_exists('place'):
osmid = cur.scalar("SELECT max(osm_id) FROM place WHERE osm_type='N'") osmid = cur.scalar("SELECT max(osm_id) FROM place WHERE osm_type='N'")
else:
osmid = cur.scalar("SELECT max(osm_id) FROM placex WHERE osm_type='N'")
if osmid is None: if osmid is None:
LOG.fatal("No data found in the database.") LOG.fatal("No data found in the database.")