我正在学习本教程
http://technobytz.com/install-postgis-postgresql-9-3-ubuntu.html
我使用此命令创建了数据库
createdb test_db -T template_postgis2.1
但我收到此错误
test_db2=# select postgis_version();
ERROR: function postgis_version() does not exist
LINE 1: select postgis_version();
如果使用
,则有效 create extension postgis
我想知道那是好的还是我有错误。因为我以前做过模板没有该模板自动将db作为postgis
答案 0 :(得分:1)
根据official documentation on the topic,您必须在您创建的每个新数据库中创建扩展。为什么?这与PostgreSQL-9.1 +和PostGIS-2 +中启用PostGIS的数据库方式的改变有关。以前,必须运行一系列脚本才能将PostGIS的功能,类型和其他功能加载到数据库中。因此,最佳做法是创建模板数据库(template_postgis
等),针对该模板运行所有脚本,并针对该模板创建每个新的支持PostGIS的数据库。在较新版本的PostgreSQL(9.1+)中,只需执行命令CREATE EXTENSION postgis
即可在新数据库中启用PostGIS支持;因此,您应该完全跳过模板步骤。
总结一下:
CREATE EXTENSION postgis;
是PostgreSQL-9.1 +和PostGIS-2 +的方法我希望有助于清理它!