Пространственная база данных 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, запустите "locate postgis.sql" из bash (без кавычек).
Келсо

Ответы:


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. Чтобы пространственно включить базу данных, используйте DDL из окна SQL:

CREATE EXTENSION postgis;

Смотрите другие подробности по установке PostGIS 2.0 из исходного кода для Ubuntu 12.04 здесь .


Если вы используете 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

2
Для использования геометрических функций, таких как ST_Transform, и для создания геометрических столбцов пользователю также потребуется GRANT SELECT ON пространственная_ре_ключая TO PUBLIC; GRANT ALL на geometry_columns TO <мой желаемый пользователь>;
geekQ

1
Вы также можете запустить SELECT postgis_full_version();впоследствии, чтобы убедиться, что база данных пространственно включена.
XåpplI'-I0llwlg'I -
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.