1

我在地理编码项目中工作,我想导入 OpenStreetMaps 数据。我创建了一个数据库并命名它nominatim,我尝试了这个命令:

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。

4

3 回答 3

1

您也可以通过以下方式删除提名数据库

sudo -su postgres
dropdb nominatim
于 2018-01-23T12:45:20.553 回答
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']);

}**/

如果您现在运行该命令,它将跳过数据库创建并执行导入。全部完成后,从文件中删除评论。

于 2017-08-04T02:28:05.393 回答
0

只需在以下位置更改数据库名称

Nominatim/settings/

编辑此文件中的数据库名称settings.php

@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
于 2015-05-15T12:37:24.463 回答