我走了这条路线来安装PostgreSQL和PostGIS:


使用独立的KyngChaos安装PostgreSQL,
也从KyngChaos安装了PostGIS ...


现在,当我启动pgAdmin并尝试创建新的PostGIS数据库时,在template中没有使用template_postgis。


我已经尝试走另一条路,那就是直接从PostgreSQL下载PostgreSQL软件包。这将安装服务器,并允许您使用StackBuilder下载和安装PostGIS。这不能解决我的问题。

#1 楼

如果模板不是自动存在的,则可以很容易地创建它。这是对ubuntu的描述:http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-karmic-koala /

这是关键部分: />
sudo su postgres
createdb template_postgis
createlang plpgsql template_postgis
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql


评论


奇怪..在步骤'createlang plpgsql postgistemplate'中,我得到了一个$“ plpgsql”已经安装在数据库“ postgistemplate”中...然后在下一步中,找不到psql:命令

– Michael Markieta
2012年1月29日在16:46

更新-/ usr / share /路径中没有postgis目录

– Michael Markieta
2012年1月29日在16:51

然后我猜它隐藏在OSX上的其他地方。您是否尝试过搜索文件?

– Underdark♦
2012年1月29日17:12

找到文件后,所有代码行均无错误运行。但是pgAdmin3仍然没有显示模板。 (很奇怪。。。在切换到Lion之前,我已经在Mac上运行了此功能)

– Michael Markieta
2012年1月29日在18:09

您使用哪个用户创建模板,以及在pgAdmin中使用哪个用户?

– Underdark♦
2012年1月29日18:58

#2 楼

从版本2开始,使用扩展系统启用了Postgis。
要在空间上启用数据库,请登录到数据库,然后:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;


源:http: //postgis.net/docs/postgis_installation.html

注意:只有SUPERUSERS角色才能创建EXTENSIONS

评论


从pgAdmin4:数据库>> {select db} >>扩展>> -r单击>>创建>>从列表中选择

–马特·威尔基
18年4月25日在21:30

#3 楼

我遇到了类似的问题,最终安装了位于以下位置的软件包: 。如果安装不起作用,请选择另一个文件夹来下载postgis安装程序(将被称为edb_postgis_1_5_pg91.app.zip之类)。解压缩并安装。如果不起作用,则可能需要重新启动并重试。在pgAdmin III中应该显示template_postgis。

#4 楼

这个问题可能已经过时了,但是我在OS X Lion上遇到了同样的错误。也许我的回答可能会对其他用户有所帮助。

默认的带有“ stack builder”的PostGIS安装将失败。但是,在第一步安装之后,您可以选择PostGIS的下载文件夹。只需将其下载到您的桌面并手动解压缩即可。通过双击该文件,它将正确安装。现在,在pgAdmin中可以使用postgis_template。

#5 楼

根据PostGIS文档,仅


某些打包的PostGIS发行版...将PostGIS函数加载到名为template_postgis的模板数据库中。因此,并不是每个发行版都附带template_postgis

如现有答案中所述,在PostGIS 2.x中,可以通过创建一个名为template_postgis的常规数据库作为超级用户来轻松创建或自定义模板,然后创建所需的扩展名和可选的扩展名(例如pgRouting)。根据PostGIS文档:

sudo su postgres
createdb template_postgis

psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"

-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"


另外,您可以通过将系统表datistemplate中的pg_database标志设置为ture来将此新创建的数据库标记为模板数据库。

psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"


例如,这可以防止模板数据库被其他用户或您自己意外删除或更改。 (如果要更改模板,则需要将标志设置为false。)

然后,您可以根据在模板中放置的内容来创建空间数据库: />
createdb -T template_postgis my_spatial_db