X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/e286536959144de9ab18abf7dce7a58e630b3bbc..c68833cd7f13957d4d8c3fee9906609f187739a1:/utils/update.php diff --git a/utils/update.php b/utils/update.php index 46f70062..7cb21879 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,8 +43,10 @@ $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; @@ -98,13 +105,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 = 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 +309,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) {