2015-04-23 107 views
1

我在地理編碼項目中工作,我想導入OpenStreetMaps數據。我創建了一個數據庫,並把它命名爲nominatim,我試過這個命令:導入OpenStreetMaps數據失敗

sudo ./utils/setup.php --osm-file morocco-latest.osm.pbf --all –osm2pgsql-cache 18000 2>&1 | tee setup.log 

它讓我看到這條消息:

CREATE DB 
ERROR: database already exists (pgsql : // @/nominatim) 

刪除我的數據庫nominatim後,它顯示了該錯誤消息:

ERROR: unable to find /usr/pgsql-9.3/share/contrib/postgis-1.5/postgis.sq 

順便說一句:我安裝了所有包的postgres。

+0

crosspost下降提名數據庫:http://gis.stackexchange.com/questions/143697/import-openstreetmaps-data-fails – scai

+0

[安裝說明](HTTPS:/ /wiki.openstreetmap.org/wiki/Nominatim/Installation#Import_and_index_OSM_data)不要說你自己創建Nominatim數據庫。 * postgis.sql *屬於postgis包,請嘗試重新安裝它。 – scai

回答

0

只是在這個文件settings.php更改數據庫名稱在以下位置

Nominatim/settings/ 

編輯數據庫名稱。

@define('CONST_Database_DSN', 'pgsql://@/nominatim'); 

變化與你的數據庫名稱

@define('CONST_Database_DSN', 'pgsql://@/nominatimMorocco'); 

如果你改變你的數據庫名稱這裏比你還需要更改以下nominatim安裝命令。

./utils/specialphrases.php --countries > specialphrases_countries.sql 
psql -d nominatimMorocco -f specialphrases_countries.sql 

./utils/specialphrases.php --wiki-import > specialphrases.sql 
psql -d nominatimMorocco -f specialphrases.sql 
1

我剛剛偶然發現了這個錯誤,這裏是我解決它的方法。 編輯文件

./utils/setup.php

和註釋以下行。

//array('create-db', '', 0, 1, 0, 0, 'bool', 'Create nominatim db'), 

以及創建數據庫的全部函數。

/**if ($aCMDResult['create-db'] || $aCMDResult['all']) { 
echo "Create DB\n"; 
$bDidSomething = true; 
$oDB = DB::connect(CONST_Database_DSN, false); 
if (!PEAR::isError($oDB)) { 
    fail('database already exists ('.CONST_Database_DSN.')'); 
} 
passthruCheckReturn('createdb -E UTF-8 -p '.$aDSNInfo['port'].' '.$aDSNInfo['database']); 

} **/

如果你現在運行的命令,它會跳過數據庫的創建和開展進口。一旦完成,從文件中刪除評論。

0

您還可以通過

sudo -su postgres 
dropdb nominatim