mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
rename sql directory to lib-sql
Also introduces a separate constant for the sql directory, so that it can be put separately from the rest of the data if required.
This commit is contained in:
@@ -6,6 +6,7 @@ require('@CMAKE_SOURCE_DIR@/lib-php/dotenv_loader.php');
|
|||||||
@define('CONST_Default_Osm2pgsql', '@CMAKE_BINARY_DIR@/osm2pgsql/osm2pgsql');
|
@define('CONST_Default_Osm2pgsql', '@CMAKE_BINARY_DIR@/osm2pgsql/osm2pgsql');
|
||||||
@define('CONST_BinDir', '@CMAKE_SOURCE_DIR@/utils');
|
@define('CONST_BinDir', '@CMAKE_SOURCE_DIR@/utils');
|
||||||
@define('CONST_DataDir', '@CMAKE_SOURCE_DIR@');
|
@define('CONST_DataDir', '@CMAKE_SOURCE_DIR@');
|
||||||
|
@define('CONST_SqlDir', '@CMAKE_SOURCE_DIR@/lib-sql');
|
||||||
|
|
||||||
loadDotEnv();
|
loadDotEnv();
|
||||||
$_SERVER['NOMINATIM_NOMINATIM_TOOL'] = '@CMAKE_BINARY_DIR@/nominatim';
|
$_SERVER['NOMINATIM_NOMINATIM_TOOL'] = '@CMAKE_BINARY_DIR@/nominatim';
|
||||||
|
|||||||
@@ -11,5 +11,6 @@ from nominatim import cli
|
|||||||
exit(cli.nominatim(module_dir='@CMAKE_BINARY_DIR@/module',
|
exit(cli.nominatim(module_dir='@CMAKE_BINARY_DIR@/module',
|
||||||
osm2pgsql_path='@CMAKE_BINARY_DIR@/osm2pgsql/osm2pgsql',
|
osm2pgsql_path='@CMAKE_BINARY_DIR@/osm2pgsql/osm2pgsql',
|
||||||
phplib_dir='@CMAKE_SOURCE_DIR@/lib-php',
|
phplib_dir='@CMAKE_SOURCE_DIR@/lib-php',
|
||||||
|
sqllib_dir='@CMAKE_SOURCE_DIR@/lib-sql',
|
||||||
data_dir='@CMAKE_SOURCE_DIR@',
|
data_dir='@CMAKE_SOURCE_DIR@',
|
||||||
phpcgi_path='@PHPCGI_BIN@'))
|
phpcgi_path='@PHPCGI_BIN@'))
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ function loadSettings($sProjectDir)
|
|||||||
// set of settings.
|
// set of settings.
|
||||||
defined('CONST_DataDir') or define('CONST_DataDir', $_SERVER['NOMINATIM_DATADIR']);
|
defined('CONST_DataDir') or define('CONST_DataDir', $_SERVER['NOMINATIM_DATADIR']);
|
||||||
defined('CONST_BinDir') or define('CONST_BinDir', $_SERVER['NOMINATIM_BINDIR']);
|
defined('CONST_BinDir') or define('CONST_BinDir', $_SERVER['NOMINATIM_BINDIR']);
|
||||||
|
defined('CONST_SqlDir') or define('CONST_SqlDir', $_SERVER['NOMINATIM_SQLDIR']);
|
||||||
defined('CONST_Default_ModulePath') or define('CONST_Default_ModulePath', $_SERVER['NOMINATIM_DATABASE_MODULE_SRC_PATH']);
|
defined('CONST_Default_ModulePath') or define('CONST_Default_ModulePath', $_SERVER['NOMINATIM_DATABASE_MODULE_SRC_PATH']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ class SetupFunctions
|
|||||||
{
|
{
|
||||||
info('Create Tables');
|
info('Create Tables');
|
||||||
|
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/tables.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/tables.sql');
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
$this->pgsqlRunScript($sTemplate, false);
|
$this->pgsqlRunScript($sTemplate, false);
|
||||||
@@ -269,7 +269,7 @@ class SetupFunctions
|
|||||||
{
|
{
|
||||||
info('Create Tables');
|
info('Create Tables');
|
||||||
|
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/table-triggers.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/table-triggers.sql');
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
$this->pgsqlRunScript($sTemplate, false);
|
$this->pgsqlRunScript($sTemplate, false);
|
||||||
@@ -279,7 +279,7 @@ class SetupFunctions
|
|||||||
{
|
{
|
||||||
info('Create Partition Tables');
|
info('Create Partition Tables');
|
||||||
|
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/partition-tables.src.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/partition-tables.src.sql');
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
$this->pgsqlRunPartitionScript($sTemplate);
|
$this->pgsqlRunPartitionScript($sTemplate);
|
||||||
@@ -442,7 +442,7 @@ class SetupFunctions
|
|||||||
warn('Tiger data import selected but no files found in path '.$sTigerPath);
|
warn('Tiger data import selected but no files found in path '.$sTigerPath);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_start.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/tiger_import_start.sql');
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
$this->pgsqlRunScript($sTemplate, false);
|
$this->pgsqlRunScript($sTemplate, false);
|
||||||
@@ -496,7 +496,7 @@ class SetupFunctions
|
|||||||
}
|
}
|
||||||
|
|
||||||
info('Creating indexes on Tiger data');
|
info('Creating indexes on Tiger data');
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_finish.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/tiger_import_finish.sql');
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
$this->pgsqlRunScript($sTemplate, false);
|
$this->pgsqlRunScript($sTemplate, false);
|
||||||
@@ -505,7 +505,7 @@ class SetupFunctions
|
|||||||
public function calculatePostcodes($bCMDResultAll)
|
public function calculatePostcodes($bCMDResultAll)
|
||||||
{
|
{
|
||||||
info('Calculate Postcodes');
|
info('Calculate Postcodes');
|
||||||
$this->pgsqlRunScriptFile(CONST_DataDir.'/sql/postcode_tables.sql');
|
$this->pgsqlRunScriptFile(CONST_SqlDir.'/postcode_tables.sql');
|
||||||
|
|
||||||
$sPostcodeFilename = CONST_InstallDir.'/gb_postcode_data.sql.gz';
|
$sPostcodeFilename = CONST_InstallDir.'/gb_postcode_data.sql.gz';
|
||||||
if (file_exists($sPostcodeFilename)) {
|
if (file_exists($sPostcodeFilename)) {
|
||||||
@@ -621,12 +621,12 @@ class SetupFunctions
|
|||||||
$this->db()->exec("DROP INDEX $sIndexName;");
|
$this->db()->exec("DROP INDEX $sIndexName;");
|
||||||
}
|
}
|
||||||
|
|
||||||
$sTemplate = file_get_contents(CONST_DataDir.'/sql/indices.src.sql');
|
$sTemplate = file_get_contents(CONST_SqlDir.'/indices.src.sql');
|
||||||
if (!$this->bDrop) {
|
if (!$this->bDrop) {
|
||||||
$sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_updates.src.sql');
|
$sTemplate .= file_get_contents(CONST_SqlDir.'/indices_updates.src.sql');
|
||||||
}
|
}
|
||||||
if (!$this->dbReverseOnly()) {
|
if (!$this->dbReverseOnly()) {
|
||||||
$sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_search.src.sql');
|
$sTemplate .= file_get_contents(CONST_SqlDir.'/indices_search.src.sql');
|
||||||
}
|
}
|
||||||
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
$sTemplate = $this->replaceSqlPatterns($sTemplate);
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ class CommandlineParser:
|
|||||||
self.parser.print_help()
|
self.parser.print_help()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
for arg in ('module_dir', 'osm2pgsql_path', 'phplib_dir', 'data_dir', 'phpcgi_path'):
|
for arg in ('module_dir', 'osm2pgsql_path', 'phplib_dir', 'sqllib_dir',
|
||||||
|
'data_dir', 'phpcgi_path'):
|
||||||
setattr(args, arg, Path(kwargs[arg]))
|
setattr(args, arg, Path(kwargs[arg]))
|
||||||
args.project_dir = Path(args.project_dir).resolve()
|
args.project_dir = Path(args.project_dir).resolve()
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class UpdateRefresh:
|
|||||||
if args.postcodes:
|
if args.postcodes:
|
||||||
LOG.warning("Update postcodes centroid")
|
LOG.warning("Update postcodes centroid")
|
||||||
conn = connect(args.config.get_libpq_dsn())
|
conn = connect(args.config.get_libpq_dsn())
|
||||||
refresh.update_postcodes(conn, args.data_dir)
|
refresh.update_postcodes(conn, args.sqllib_dir)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
if args.word_counts:
|
if args.word_counts:
|
||||||
@@ -70,7 +70,7 @@ class UpdateRefresh:
|
|||||||
if args.functions:
|
if args.functions:
|
||||||
LOG.warning('Create functions')
|
LOG.warning('Create functions')
|
||||||
conn = connect(args.config.get_libpq_dsn())
|
conn = connect(args.config.get_libpq_dsn())
|
||||||
refresh.create_functions(conn, args.config, args.data_dir,
|
refresh.create_functions(conn, args.config, args.sqllib_dir,
|
||||||
args.diffs, args.enable_debug_statements)
|
args.diffs, args.enable_debug_statements)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class UpdateReplication:
|
|||||||
replication.init_replication(conn, base_url=args.config.REPLICATION_URL)
|
replication.init_replication(conn, base_url=args.config.REPLICATION_URL)
|
||||||
if args.update_functions:
|
if args.update_functions:
|
||||||
LOG.warning("Create functions")
|
LOG.warning("Create functions")
|
||||||
refresh.create_functions(conn, args.config, args.data_dir,
|
refresh.create_functions(conn, args.config, args.sqllib_dir,
|
||||||
True, False)
|
True, False)
|
||||||
conn.close()
|
conn.close()
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ def run_legacy_script(script, *args, nominatim_env=None, throw_on_fail=False):
|
|||||||
env = nominatim_env.config.get_os_env()
|
env = nominatim_env.config.get_os_env()
|
||||||
env['NOMINATIM_DATADIR'] = str(nominatim_env.data_dir)
|
env['NOMINATIM_DATADIR'] = str(nominatim_env.data_dir)
|
||||||
env['NOMINATIM_BINDIR'] = str(nominatim_env.data_dir / 'utils')
|
env['NOMINATIM_BINDIR'] = str(nominatim_env.data_dir / 'utils')
|
||||||
|
env['NOMINATIM_SQLDIR'] = str(nominatim_env.sqllib_dir)
|
||||||
env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = nominatim_env.module_dir
|
env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = nominatim_env.module_dir
|
||||||
if not env['NOMINATIM_OSM2PGSQL_BINARY']:
|
if not env['NOMINATIM_OSM2PGSQL_BINARY']:
|
||||||
env['NOMINATIM_OSM2PGSQL_BINARY'] = nominatim_env.osm2pgsql_path
|
env['NOMINATIM_OSM2PGSQL_BINARY'] = nominatim_env.osm2pgsql_path
|
||||||
|
|||||||
@@ -8,17 +8,17 @@ from psycopg2.extras import execute_values
|
|||||||
|
|
||||||
from ..db.utils import execute_file
|
from ..db.utils import execute_file
|
||||||
|
|
||||||
def update_postcodes(conn, datadir):
|
def update_postcodes(conn, sql_dir):
|
||||||
""" Recalculate postcode centroids and add, remove and update entries in the
|
""" Recalculate postcode centroids and add, remove and update entries in the
|
||||||
location_postcode table. `conn` is an opne connection to the database.
|
location_postcode table. `conn` is an opne connection to the database.
|
||||||
"""
|
"""
|
||||||
execute_file(conn, datadir / 'sql' / 'update-postcodes.sql')
|
execute_file(conn, sql_dir / 'update-postcodes.sql')
|
||||||
|
|
||||||
|
|
||||||
def recompute_word_counts(conn, datadir):
|
def recompute_word_counts(conn, sql_dir):
|
||||||
""" Compute the frequency of full-word search terms.
|
""" Compute the frequency of full-word search terms.
|
||||||
"""
|
"""
|
||||||
execute_file(conn, datadir / 'sql' / 'words_from_search_name.sql')
|
execute_file(conn, sql_dir / 'words_from_search_name.sql')
|
||||||
|
|
||||||
|
|
||||||
def _add_address_level_rows_from_entry(rows, entry):
|
def _add_address_level_rows_from_entry(rows, entry):
|
||||||
@@ -153,12 +153,10 @@ def _get_partition_function_sql(conn, sql_dir):
|
|||||||
|
|
||||||
return replace_partition_string(sql, sorted(partitions))
|
return replace_partition_string(sql, sorted(partitions))
|
||||||
|
|
||||||
def create_functions(conn, config, data_dir,
|
def create_functions(conn, config, sql_dir,
|
||||||
enable_diff_updates=True, enable_debug=False):
|
enable_diff_updates=True, enable_debug=False):
|
||||||
""" (Re)create the PL/pgSQL functions.
|
""" (Re)create the PL/pgSQL functions.
|
||||||
"""
|
"""
|
||||||
sql_dir = data_dir / 'sql'
|
|
||||||
|
|
||||||
sql = _get_standard_function_sql(conn, config, sql_dir,
|
sql = _get_standard_function_sql(conn, config, sql_dir,
|
||||||
enable_diff_updates, enable_debug)
|
enable_diff_updates, enable_debug)
|
||||||
sql += _get_partition_function_sql(conn, sql_dir)
|
sql += _get_partition_function_sql(conn, sql_dir)
|
||||||
|
|||||||
@@ -88,13 +88,17 @@ class NominatimEnvironment:
|
|||||||
self.test_env['NOMINATIM_IMPORT_STYLE'] = 'full'
|
self.test_env['NOMINATIM_IMPORT_STYLE'] = 'full'
|
||||||
self.test_env['NOMINATIM_USE_US_TIGER_DATA'] = 'yes'
|
self.test_env['NOMINATIM_USE_US_TIGER_DATA'] = 'yes'
|
||||||
self.test_env['NOMINATIM_DATADIR'] = self.src_dir
|
self.test_env['NOMINATIM_DATADIR'] = self.src_dir
|
||||||
|
self.test_env['NOMINATIM_SQLDIR'] = self.src_dir / 'lib-sql'
|
||||||
self.test_env['NOMINATIM_BINDIR'] = self.src_dir / 'utils'
|
self.test_env['NOMINATIM_BINDIR'] = self.src_dir / 'utils'
|
||||||
self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = self.build_dir / 'module'
|
self.test_env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = self.build_dir / 'module'
|
||||||
self.test_env['NOMINATIM_OSM2PGSQL_BINARY'] = self.build_dir / 'osm2pgsql' / 'osm2pgsql'
|
self.test_env['NOMINATIM_OSM2PGSQL_BINARY'] = self.build_dir / 'osm2pgsql' / 'osm2pgsql'
|
||||||
self.test_env['NOMINATIM_NOMINATIM_TOOL'] = self.build_dir / 'nominatim'
|
self.test_env['NOMINATIM_NOMINATIM_TOOL'] = self.build_dir / 'nominatim'
|
||||||
|
|
||||||
if self.server_module_path:
|
if self.server_module_path:
|
||||||
self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = self.server_module_path
|
self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = self.server_module_path
|
||||||
|
else:
|
||||||
|
# avoid module being copied into the temporary environment
|
||||||
|
self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = self.build_dir / 'module'
|
||||||
|
|
||||||
if self.website_dir is not None:
|
if self.website_dir is not None:
|
||||||
self.website_dir.cleanup()
|
self.website_dir.cleanup()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import pytest
|
|||||||
from nominatim.db.connection import connect
|
from nominatim.db.connection import connect
|
||||||
from nominatim.tools.refresh import _get_standard_function_sql, _get_partition_function_sql
|
from nominatim.tools.refresh import _get_standard_function_sql, _get_partition_function_sql
|
||||||
|
|
||||||
SQL_DIR = (Path(__file__) / '..' / '..' / '..' / 'sql').resolve()
|
SQL_DIR = (Path(__file__) / '..' / '..' / '..' / 'lib-sql').resolve()
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def db(temp_db):
|
def db(temp_db):
|
||||||
|
|||||||
Reference in New Issue
Block a user