空间启用的Postgres数据库


12

我正在尝试创建一个启用空间的PostGIS数据库。我正在遵循PostGIS文档http://postgis.net/docs/manual-1.5/ch02.html#id2648455

在简短的版本中,我执行了

createdb yourdatabase
createlang plpgsql yourdatabase

但是我没有执行最后三个命令,

psql -d yourdatabase -f postgis.sql
psql -d yourdatabase -f postgis_comments.sql
psql -d yourdatabase -f spatial_ref_sys.sql

我的数据库还在空间上启用吗?如果没有,那么您能告诉我这些.sql文件的位置,以便执行最后的命令,因为出现以下错误,

postgis.sql: No such file or directory

我正在使用Ubuntu 12.04


2
要查找您的postgis.sql文件,请从bash中运行“ locate postgis.sql”(不带引号)。
凯尔索2012年

Answers:


14

尽管此时数据库在技术上是空间的,但您只能使用内置的pg几何类型。

为了完成安装,您确实需要按照建议运行脚本。

您可以在/usr/share/postgresql/[version number]/contrib/postgis子目录中找到它们。

您应该看到以下内容:

legacy_minimal.sql    postgis_upgrade_20_minor.sql    spatial_ref_sys.sql
legacy.sql            raster_comments.sql             topology_comments.sql
postgis_comments.sql  rtpostgis_legacy.sql            uninstall_legacy.sql
postgis_restore.pl    rtpostgis.sql                   uninstall_postgis.sql
postgis.sql           rtpostgis_upgrade_20_minor.sql  uninstall_rtpostgis.sql

18

如果您拥有Ubuntu 12.04,那么您应该拥有PostgreSQL 9.1,这对PostGIS 2.0来说是很棒的事情,您可以在其中使用新的EXTENSION框架。要在空间上启用数据库,请在SQL窗口中使用DDL:

CREATE EXTENSION postgis;

在此处查看有关从Ubuntu 12.04的源安装PostGIS 2.0的其他详细信息。


如果您使用的是PostGIS 1.5,则需要在“ mydb”上启用启动器脚本,该脚本从外壳运行:

sudo -u postgres createdb mydb
sudo -u postgres psql -d mydb -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
sudo -u postgres psql -d mydb -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
sudo -u postgres psql -d mydb -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis_comments.sql

我实际上确实转到/usr/share/postgresql/8.4/contrib/并在那里找到.sql文件
Sam007

2
为了使用诸如ST_Transform之类的几何函数并创建几何列,用户还需要GRANT SELECT ON space_ref_sys TO PUBLIC;将所有几何_列授予<我想要的用户>;
geekQ

1
您还可以SELECT postgis_full_version();随后运行,以检查数据库是否启用了空间。
XåpplI'-I0llwlg'I -
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.