我在地理编码项目中工作,我想导入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
BTW:我安装了所有包装的postgres。
答案 0 :(得分: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']);
} ** /
如果您现在运行该命令,它将跳过数据库创建并执行导入。完成所有操作后,从文件中删除注释。
答案 1 :(得分:1)
你也可以通过
删除提名数据库sudo -su postgres
dropdb nominatim
答案 2 :(得分: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