-#!/usr/bin/php -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
+require_once(CONST_BasePath.'/lib/setup_functions.php');
+require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
+require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php');
+
ini_set('memory_limit', '800M');
-# (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
+use Nominatim\Setup\SetupFunctions as SetupFunctions;
+// (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
$aCMDOptions
= array(
'Import / update / index osm data',
array('init-updates', '', 0, 1, 0, 0, 'bool', 'Set up database for updating'),
array('check-for-updates', '', 0, 1, 0, 0, 'bool', 'Check if new updates are available'),
- array('update-functions', '', 0, 1, 0, 0, 'bool', 'Update trigger functions to support differential updates'),
+ array('no-update-functions', '', 0, 1, 0, 0, 'bool', 'Do not update trigger functions to support differential updates (assuming the diff update logic is already present)'),
array('import-osmosis', '', 0, 1, 0, 0, 'bool', 'Import updates once'),
array('import-osmosis-all', '', 0, 1, 0, 0, 'bool', 'Import updates forever'),
array('no-index', '', 0, 1, 0, 0, 'bool', 'Do not index the new data'),
array('deduplicate', '', 0, 1, 0, 0, 'bool', 'Deduplicate tokens'),
array('recompute-word-counts', '', 0, 1, 0, 0, 'bool', 'Compute frequency of full-word search terms'),
+ array('update-address-levels', '', 0, 1, 0, 0, 'bool', 'Reimport address level configuration (EXPERT)'),
array('no-npi', '', 0, 1, 0, 0, 'bool', '(obsolete)'),
);
+
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
if (!isset($aResult['index-instances'])) $aResult['index-instances'] = 1;
+
if (!isset($aResult['index-rank'])) $aResult['index-rank'] = 0;
date_default_timezone_set('Etc/UTC');
echo "and have set up CONST_Pyosmium_Binary to point to pyosmium-get-changes.\n";
fail('pyosmium-get-changes not found or not usable');
}
- if ($aResult['update-functions']) {
- $sSetup = CONST_InstallPath.'/utils/setup.php';
- $iRet = -1;
- passthru($argv[0].' '.$sSetup.' --create-functions --enable-diff-updates', $iRet);
- if ($iRet != 0) {
- fail('Error running setup script');
- }
+
+ if (!$aResult['no-update-functions']) {
+ // instantiate setupClass to use the function therein
+ $cSetup = new SetupFunctions(array(
+ 'enable-diff-updates' => true,
+ 'verbose' => $aResult['verbose']
+ ));
+ $cSetup->connect();
+ $cSetup->createFunctions();
}
$sDatabaseDate = getDatabaseDate($oDB);
runWithEnv($sCmd, $aProcEnv);
}
+if ($aResult['update-address-levels']) {
+ echo 'Updating address levels from '.CONST_Address_Level_Config.".\n";
+ $oAlParser = new \Nominatim\Setup\AddressLevelParser(CONST_Address_Level_Config);
+ $oAlParser->createTable($oDB, 'address_levels');
+}
+
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
//
if (strpos(CONST_Replication_Url, 'download.geofabrik.de') !== false && CONST_Replication_Update_Interval < 86400) {