From: Sarah Hoffmann Date: Sun, 17 Nov 2019 09:09:31 +0000 (+0100) Subject: Switch to sql.gz format for wikipedia data X-Git-Tag: v3.5.0~132^2~4 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/cd3ddec7463359524c3df2c66cb784746661afdc Switch to sql.gz format for wikipedia data The dump import is no longer needed. --- diff --git a/docs/admin/Import-and-Update.md b/docs/admin/Import-and-Update.md index a38d8eea..246fcdda 100644 --- a/docs/admin/Import-and-Update.md +++ b/docs/admin/Import-and-Update.md @@ -41,10 +41,9 @@ but it will improve the quality of the results if this is installed. This data is available as a binary download: cd $NOMINATIM_SOURCE_DIR/data - wget https://www.nominatim.org/data/wikimedia_importance.sql.gz + wget https://www.nominatim.org/data/wikimedia-importance.sql.gz -The file is about 1GB and it adds around 10GB to the install -size of Nominatim. They also increase the install time by an hour or so. +The file is about 400MB and adds around 4GB to Nominatim database. *NOTE:* if you forgot to download the wikipedia rankings, you can also add them after the import by running `./utils/setup.php --import-wikipedia-articles` diff --git a/lib/setup/SetupClass.php b/lib/setup/SetupClass.php index c1c15d9a..1c4547e3 100755 --- a/lib/setup/SetupClass.php +++ b/lib/setup/SetupClass.php @@ -323,10 +323,12 @@ class SetupFunctions public function importWikipediaArticles() { - $sWikiArticlesFile = CONST_Wikipedia_Data_Path.'/wikimedia_importance.sql.gz'; + $this->pgExec('DROP TABLE wikipedia_article'); + $this->pgExec('DROP TABLE wikipedia_redirect'); + $sWikiArticlesFile = CONST_Wikipedia_Data_Path.'/wikimedia-importance.sql.gz'; if (file_exists($sWikiArticlesFile)) { info('Importing wikipedia articles and redirects'); - $this->pgsqlRunDropAndRestore($sWikiArticlesFile); + $this->pgsqlRunScriptFile($sWikiArticlesFile); } else { warn('wikipedia importance dump file not found - places will have default importance'); } @@ -737,25 +739,6 @@ class SetupFunctions } } - private function pgsqlRunDropAndRestore($sDumpFile) - { - $sCMD = 'pg_restore' - .' -p '.escapeshellarg($this->aDSNInfo['port']) - .' -d '.escapeshellarg($this->aDSNInfo['database']) - .' --no-owner -Fc --clean '.escapeshellarg($sDumpFile); - if ($this->oDB->getPostgresVersion() >= 9.04) { - $sCMD .= ' --if-exists'; - } - if (isset($this->aDSNInfo['hostspec'])) { - $sCMD .= ' -h '.escapeshellarg($this->aDSNInfo['hostspec']); - } - if (isset($this->aDSNInfo['username'])) { - $sCMD .= ' -U '.escapeshellarg($this->aDSNInfo['username']); - } - - $this->runWithPgEnv($sCMD); - } - private function pgsqlRunScript($sScript, $bfatal = true) { runSQLScript(