X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/0a710c0762ceb432433f9ceedbd2ce1e948ac38c..b5480f6e366be7c7d06d8444acc4cfd6a1aa31e2:/lib/setup/SetupClass.php?ds=sidebyside diff --git a/lib/setup/SetupClass.php b/lib/setup/SetupClass.php index ba700a2c..6114689f 100755 --- a/lib/setup/SetupClass.php +++ b/lib/setup/SetupClass.php @@ -2,8 +2,8 @@ namespace Nominatim\Setup; -require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php'); -require_once(CONST_BasePath.'/lib/Shell.php'); +require_once(CONST_LibDir.'/setup/AddressLevelParser.php'); +require_once(CONST_LibDir.'/Shell.php'); class SetupFunctions { @@ -140,24 +140,24 @@ class SetupFunctions // Try accessing the C module, so we know early if something is wrong checkModulePresence(); // raises exception on failure - if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) { + if (!file_exists(CONST_DataDir.'/data/country_osm_grid.sql.gz')) { echo 'Error: you need to download the country_osm_grid first:'; - echo "\n wget -O ".CONST_ExtraDataPath."/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n"; + echo "\n wget -O ".CONST_DataDir."/data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n"; exit(1); } - $this->pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql'); - $this->pgsqlRunScriptFile(CONST_ExtraDataPath.'/country_osm_grid.sql.gz'); - $this->pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_table.sql'); - $this->pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode_table.sql'); + $this->pgsqlRunScriptFile(CONST_DataDir.'/data/country_name.sql'); + $this->pgsqlRunScriptFile(CONST_DataDir.'/data/country_osm_grid.sql.gz'); + $this->pgsqlRunScriptFile(CONST_DataDir.'/data/gb_postcode_table.sql'); + $this->pgsqlRunScriptFile(CONST_DataDir.'/data/us_postcode_table.sql'); - $sPostcodeFilename = CONST_BasePath.'/data/gb_postcode_data.sql.gz'; + $sPostcodeFilename = CONST_DataDir.'/data/gb_postcode_data.sql.gz'; if (file_exists($sPostcodeFilename)) { $this->pgsqlRunScriptFile($sPostcodeFilename); } else { warn('optional external GB postcode table file ('.$sPostcodeFilename.') not found. Skipping.'); } - $sPostcodeFilename = CONST_BasePath.'/data/us_postcode_data.sql.gz'; + $sPostcodeFilename = CONST_DataDir.'/data/us_postcode_data.sql.gz'; if (file_exists($sPostcodeFilename)) { $this->pgsqlRunScriptFile($sPostcodeFilename); } else { @@ -201,6 +201,8 @@ class SetupFunctions $oCmd->addParams('--output', 'gazetteer'); $oCmd->addParams('--hstore'); $oCmd->addParams('--number-processes', 1); + $oCmd->addParams('--with-forward-dependencies', 'false'); + $oCmd->addParams('--log-progress', 'true'); $oCmd->addParams('--cache', $this->iCacheMemory); $oCmd->addParams('--port', $this->aDSNInfo['port']); @@ -241,7 +243,7 @@ class SetupFunctions { info('Create Tables'); - $sTemplate = file_get_contents(CONST_BasePath.'/sql/tables.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/tables.sql'); $sTemplate = $this->replaceSqlPatterns($sTemplate); $this->pgsqlRunScript($sTemplate, false); @@ -258,7 +260,7 @@ class SetupFunctions { info('Create Tables'); - $sTemplate = file_get_contents(CONST_BasePath.'/sql/table-triggers.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/table-triggers.sql'); $sTemplate = $this->replaceSqlPatterns($sTemplate); $this->pgsqlRunScript($sTemplate, false); @@ -268,7 +270,7 @@ class SetupFunctions { info('Create Partition Tables'); - $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-tables.src.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/partition-tables.src.sql'); $sTemplate = $this->replaceSqlPatterns($sTemplate); $this->pgsqlRunPartitionScript($sTemplate); @@ -278,7 +280,7 @@ class SetupFunctions { info('Create Partition Functions'); - $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-functions.src.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/partition-functions.src.sql'); $this->pgsqlRunPartitionScript($sTemplate); } @@ -340,7 +342,7 @@ class SetupFunctions // pre-create the word list if (!$bDisableTokenPrecalc) { info('Loading word list'); - $this->pgsqlRunScriptFile(CONST_BasePath.'/data/words.sql'); + $this->pgsqlRunScriptFile(CONST_DataDir.'/data/words.sql'); } info('Load Data'); @@ -432,7 +434,7 @@ class SetupFunctions warn('Tiger data import selected but no files found in path '.CONST_Tiger_Data_Path); return; } - $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_start.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_start.sql'); $sTemplate = $this->replaceSqlPatterns($sTemplate); $this->pgsqlRunScript($sTemplate, false); @@ -486,7 +488,7 @@ class SetupFunctions } info('Creating indexes on Tiger data'); - $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_finish.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_finish.sql'); $sTemplate = $this->replaceSqlPatterns($sTemplate); $this->pgsqlRunScript($sTemplate, false); @@ -542,7 +544,7 @@ class SetupFunctions { checkModulePresence(); // raises exception on failure - $oBaseCmd = (new \Nominatim\Shell(CONST_BasePath.'/nominatim/nominatim.py')) + $oBaseCmd = (new \Nominatim\Shell(CONST_DataDir.'/nominatim/nominatim.py')) ->addParams('--database', $this->aDSNInfo['database']) ->addParams('--port', $this->aDSNInfo['port']) ->addParams('--threads', $this->iInstances); @@ -566,19 +568,27 @@ class SetupFunctions info('Index ranks 0 - 4'); $oCmd = (clone $oBaseCmd)->addParams('--maxrank', 4); echo $oCmd->escapedCmd(); - + $iStatus = $oCmd->run(); if ($iStatus != 0) { fail('error status ' . $iStatus . ' running nominatim!'); } if (!$bIndexNoanalyse) $this->pgsqlRunScript('ANALYSE'); + info('Index administrative boundaries'); + $oCmd = (clone $oBaseCmd)->addParams('-b'); + $iStatus = $oCmd->run(); + if ($iStatus != 0) { + fail('error status ' . $iStatus . ' running nominatim!'); + } + info('Index ranks 5 - 25'); $oCmd = (clone $oBaseCmd)->addParams('--minrank', 5, '--maxrank', 25); $iStatus = $oCmd->run(); if ($iStatus != 0) { fail('error status ' . $iStatus . ' running nominatim!'); } + if (!$bIndexNoanalyse) $this->pgsqlRunScript('ANALYSE'); info('Index ranks 26 - 30'); @@ -606,12 +616,12 @@ class SetupFunctions $this->db()->exec("DROP INDEX $sIndexName;"); } - $sTemplate = file_get_contents(CONST_BasePath.'/sql/indices.src.sql'); + $sTemplate = file_get_contents(CONST_DataDir.'/sql/indices.src.sql'); if (!$this->bDrop) { - $sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_updates.src.sql'); + $sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_updates.src.sql'); } if (!$this->dbReverseOnly()) { - $sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_search.src.sql'); + $sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_search.src.sql'); } $sTemplate = $this->replaceSqlPatterns($sTemplate); @@ -699,19 +709,13 @@ class SetupFunctions */ public function setupWebsite() { - $rOutputFile = fopen(CONST_InstallPath.'/settings/settings-frontend.php', 'w'); + $rOutputFile = fopen(CONST_InstallDir.'/settings/settings-frontend.php', 'w'); fwrite($rOutputFile, "