X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/db3ced17bbfff00411f506d8c84419c875959d5e..3c186f80304b5b66795e9ef3cb9edb8f343c9416:/lib-php/admin/setup.php?ds=sidebyside diff --git a/lib-php/admin/setup.php b/lib-php/admin/setup.php index 241b873c..cb7eeee1 100644 --- a/lib-php/admin/setup.php +++ b/lib-php/admin/setup.php @@ -56,6 +56,25 @@ setupHTTPProxy(); $bDidSomething = false; +$oNominatimCmd = new \Nominatim\Shell(getSetting('NOMINATIM_TOOL')); +if (isset($aCMDResult['quiet']) && $aCMDResult['quiet']) { + $oNominatimCmd->addParams('--quiet'); +} +if ($aCMDResult['verbose']) { + $oNominatimCmd->addParams('--verbose'); +} + +// by default, use all but one processor, but never more than 15. +var_dump($aCMDResult); +$iInstances = max(1, $aCMDResult['threads'] ?? (min(16, getProcessorCount()) - 1)); + +function run($oCmd) { + global $iInstances; + $oCmd->addParams('--threads', $iInstances); + $oCmd->run(true); +} + + //******************************************************* // Making some sanity check: // Check if osm-file is set and points to a valid file @@ -72,17 +91,30 @@ $oSetup = new SetupFunctions($aCMDResult); // go through complete process if 'all' is selected or start selected functions if ($aCMDResult['create-db'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->createDB(); + run((clone($oNominatimCmd))->addParams('transition', '--create-db')); } if ($aCMDResult['setup-db'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->setupDB(); + $oCmd = (clone($oNominatimCmd))->addParams('transition', '--setup-db'); + + if ($aCMDResult['no-partitions'] ?? false) { + $oCmd->addParams('--no-partitions'); + } + + run($oCmd); } if ($aCMDResult['import-data'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->importData($aCMDResult['osm-file']); + $oCmd = (clone($oNominatimCmd)) + ->addParams('transition', '--import-data') + ->addParams('--osm-file', $aCMDResult['osm-file']); + if ($aCMDResult['drop'] ?? false) { + $oCmd->addParams('--drop'); + } + + run($oCmd); } if ($aCMDResult['create-functions'] || $aCMDResult['all']) { @@ -104,12 +136,13 @@ if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) { if ($aCMDResult['create-partition-functions'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->createPartitionFunctions(); + $oSetup->createFunctions(); // also create partition functions } if ($aCMDResult['import-wikipedia-articles'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->importWikipediaArticles(); + // ignore errors! + (clone($oNominatimCmd))->addParams('refresh', '--wiki-data')->run(); } if ($aCMDResult['load-data'] || $aCMDResult['all']) { @@ -130,12 +163,17 @@ if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) { if ($aCMDResult['index'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->index($aCMDResult['index-noanalyse']); + $oCmd = (clone($oNominatimCmd))->addParams('transition', '--index'); + if ($aCMDResult['index-noanalyse'] ?? false) { + $oCmd->addParams('--no-analyse'); + } + + run($oCmd); } if ($aCMDResult['drop']) { $bDidSomething = true; - $oSetup->drop($aCMDResult); + run((clone($oNominatimCmd))->addParams('freeze')); } if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) { @@ -150,7 +188,7 @@ if ($aCMDResult['create-country-names'] || $aCMDResult['all']) { if ($aCMDResult['setup-website'] || $aCMDResult['all']) { $bDidSomething = true; - $oSetup->setupWebsite(); + run((clone($oNominatimCmd))->addParams('refresh', '--website')); } // ******************************************************