我正在使用ubuntu 12.04,我安装了postgis2.1和postgresql9.1 ......我是所有人的新手!... 我按照这个tuto来创建一个模板数据库:http://linfiniti.com/2012/05/installing-postgis-2-0-on-ubuntu/我被困住了,现在不知道该怎么办......
当我尝试执行以下命令时:
psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
我有以下错误(我只复制粘贴结束,因为不同的行号是同样的错误):
psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:6050: ERROR: current transaction is aborted, commands ignored until end of transaction block psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:6056: ERROR: current transaction is aborted, commands ignored until end of transaction block ROLLBACK
我注意到每个错误都链接到我执行的脚本postgis.sql中以“LANGUAGE ....”开头的命令 我在互联网上看到这种错误可能是由于未安装的plpgsql,但是当我输入时不是我的情况:
createlang -d template_postgis2 plpgsql
(如tuto中所示)机器返回
createlang: language "plpgsql" is already installed in database "template_postgis2"
有没有人知道发生了什么?和/或我应该做什么? 也许因为我使用postgis2.1而不是2.0,就像在linfinity.com教程中那样,它会让事情变得混乱?
编辑:错误消息的开头如下:
$ psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql SET BEGIN psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:47: ERROR: permission denied for language c psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:52: ERROR: current transaction is aborted, commands ignored until end of transaction block
答案 0 :(得分:3)
在Postgres 9.1中有a new way来创建空间数据库:
psql -d template_postgis2 -c "CREATE EXTENSION postgis;"
答案 1 :(得分:0)
刚刚在某个论坛上找到:
sudo ldconfig
更新: 在official documentation中找到了此建议:
在Linux平台上,可能需要在安装每个库后运行ldconfig命令。
修复了从postgis模板创建数据库时可能出现的postres错误