2015-04-23 96 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