if args.functions:
LOG.warning('Create functions')
with connect(args.config.get_libpq_dsn()) as conn:
- refresh.create_functions(conn, args.config, args.sqllib_dir,
+ refresh.create_functions(conn, args.config,
args.diffs, args.enable_debug_statements)
if args.wiki_data:
if args.website:
webdir = args.project_dir / 'website'
LOG.warning('Setting up website directory at %s', webdir)
- refresh.setup_website(webdir, args.phplib_dir, args.config)
+ refresh.setup_website(webdir, args.config)
return 0
replication.init_replication(conn, base_url=args.config.REPLICATION_URL)
if args.update_functions:
LOG.warning("Create functions")
- refresh.create_functions(conn, args.config, args.sqllib_dir,
- True, False)
+ refresh.create_functions(conn, args.config, True, False)
return 0
with connect(args.config.get_libpq_dsn()) as conn:
LOG.warning('Create functions (1st pass)')
- refresh.create_functions(conn, args.config, args.sqllib_dir,
- False, False)
+ refresh.create_functions(conn, args.config, False, False)
LOG.warning('Create tables')
- database_import.create_tables(conn, args.config, args.sqllib_dir,
+ database_import.create_tables(conn, args.config,
reverse_only=args.reverse_only)
refresh.load_address_levels_from_file(conn, Path(args.config.ADDRESS_LEVEL_CONFIG))
LOG.warning('Create functions (2nd pass)')
- refresh.create_functions(conn, args.config, args.sqllib_dir,
- False, False)
+ refresh.create_functions(conn, args.config, False, False)
LOG.warning('Create table triggers')
- database_import.create_table_triggers(conn, args.config, args.sqllib_dir)
+ database_import.create_table_triggers(conn, args.config)
LOG.warning('Create partition tables')
- database_import.create_partition_tables(conn, args.config, args.sqllib_dir)
+ database_import.create_partition_tables(conn, args.config)
LOG.warning('Create functions (3rd pass)')
- refresh.create_functions(conn, args.config, args.sqllib_dir,
- False, False)
+ refresh.create_functions(conn, args.config, False, False)
LOG.warning('Importing wikipedia importance data')
data_path = Path(args.config.WIKIPEDIA_DATA_PATH or args.project_dir)
LOG.warning('Post-process tables')
with connect(args.config.get_libpq_dsn()) as conn:
database_import.create_search_indices(conn, args.config,
- args.sqllib_dir,
drop=args.no_updates)
LOG.warning('Create search index for default country names.')
database_import.create_country_names(conn, args.config)
webdir = args.project_dir / 'website'
LOG.warning('Setup website at %s', webdir)
- refresh.setup_website(webdir, args.phplib_dir, args.config)
+ refresh.setup_website(webdir, args.config)
with connect(args.config.get_libpq_dsn()) as conn:
try:
Path(options['flatnode_file']).unlink()
-def create_tables(conn, config, sqllib_dir, reverse_only=False):
+def create_tables(conn, config, reverse_only=False):
""" Create the set of basic tables.
When `reverse_only` is True, then the main table for searching will
be skipped and only reverse search is possible.
sql.run_sql_file(conn, 'tables.sql')
-def create_table_triggers(conn, config, sqllib_dir):
+def create_table_triggers(conn, config):
""" Create the triggers for the tables. The trigger functions must already
have been imported with refresh.create_functions().
"""
sql.run_sql_file(conn, 'table-triggers.sql')
-def create_partition_tables(conn, config, sqllib_dir):
+def create_partition_tables(conn, config):
""" Create tables that have explicit partitioning.
"""
sql = SQLPreprocessor(conn, config)
cur.execute('ANALYSE')
-def create_search_indices(conn, config, sqllib_dir, drop=False):
+def create_search_indices(conn, config, drop=False):
""" Create tables that have explicit partitioning.
"""
if has_run_migration:
LOG.warning('Updating SQL functions.')
- refresh.create_functions(conn, config, paths.sqllib_dir)
+ refresh.create_functions(conn, config)
properties.set_property(conn, 'database_version',
'{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(NOMINATIM_VERSION))
load_address_levels(conn, 'address_levels', json.load(fdesc))
-def create_functions(conn, config, sqllib_dir,
- enable_diff_updates=True, enable_debug=False):
+def create_functions(conn, config, enable_diff_updates=True, enable_debug=False):
""" (Re)create the PL/pgSQL functions.
"""
sql = SQLPreprocessor(conn, config)
conn.commit()
-def setup_website(basedir, phplib_dir, config):
+def setup_website(basedir, config):
""" Create the website script stubs.
"""
if not basedir.exists():
@define('CONST_LibDir', '{0}');
@define('CONST_NominatimVersion', '{1[0]}.{1[1]}.{1[2]}-{1[3]}');
- """.format(phplib_dir, NOMINATIM_VERSION))
+ """.format(config.lib_dir.php, NOMINATIM_VERSION))
for php_name, conf_name, var_type in PHP_CONST_DEFS:
if var_type == bool:
template += "@define('CONST_{}', {});\n".format(php_name, varout)
- template += "\nrequire_once('{}/website/{{}}');\n".format(phplib_dir)
+ template += "\nrequire_once('{}/website/{{}}');\n".format(config.lib_dir.php)
for script in WEBSITE_SCRIPTS:
(basedir / script).write_text(template.format(script), 'utf-8')
self.website_dir = tempfile.TemporaryDirectory()
cfg = Configuration(None, self.src_dir / 'settings', environ=self.test_env)
- refresh.setup_website(Path(self.website_dir.name) / 'website', self.src_dir / 'lib-php', cfg)
+ cfg.lib_dir.php = self.src_dir / 'lib-php'
+ refresh.setup_website(Path(self.website_dir.name) / 'website', cfg)
def get_libpq_dsn(self):
dsn = self.test_env['NOMINATIM_DATABASE_DSN']
$$ LANGUAGE plpgsql IMMUTABLE;
""")
- create_functions(conn, def_config, sql_tmp_path)
+ create_functions(conn, def_config)
assert temp_db_cursor.scalar('SELECT test()') == 43
$$ LANGUAGE plpgsql IMMUTABLE;
""")
- create_functions(conn, def_config, sql_tmp_path, enable_debug=dbg)
+ create_functions(conn, def_config, enable_debug=dbg)
assert temp_db_cursor.scalar('SELECT test()') == ret
def run_website_script(envdir, config):
- refresh.setup_website(envdir, envdir / 'php', config)
+ config.lib_dir.php = envdir / 'php'
+ refresh.setup_website(envdir, config)
proc = subprocess.run(['/usr/bin/env', 'php', '-Cq',
envdir / 'search.php'], check=False)