X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/57bf76a0e1d766bc90afcb8a748c5e25e7aa6f08..c5e792def965b0f4dccd42c80e0901a5a8f4d19b:/utils/update.php diff --git a/utils/update.php b/utils/update.php index 414fadb5..a5170ae5 100755 --- a/utils/update.php +++ b/utils/update.php @@ -3,10 +3,15 @@ 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', @@ -38,11 +43,14 @@ $aCMDOptions 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'); @@ -98,13 +106,15 @@ if ($aResult['init-updates']) { 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['no-update-functions']) { - $sSetup ='@PHP_BIN@ '. CONST_InstallPath.'/utils/setup.php'; - $iRet = -1; - passthru($sSetup.' --create-functions --enable-diff-updates', $iRet); - if ($iRet != 0) { - fail('Error running setup script'); - } + // 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); @@ -300,6 +310,12 @@ if ($aResult['index']) { 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) {