Basis data Postgres yang diaktifkan secara spasial


12

Saya mencoba membuat database PostGIS yang diaktifkan secara spasial. Saya mengikuti dokumentasi PostGIS, http://postgis.net/docs/manual-1.5/ch02.html#id2648455 .

Dalam versi singkat, saya dieksekusi,

createdb yourdatabase
createlang plpgsql yourdatabase

Tapi saya tidak menjalankan tiga perintah terakhir,

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

Apakah basis data saya masih diaktifkan secara spasial? Jika tidak, dapatkah Anda memberi tahu saya di mana file .sql ini berada sehingga saya dapat menjalankan perintah terakhir itu, karena saya mendapatkan kesalahan berikut,

postgis.sql: No such file or directory

Saya menggunakan Ubuntu 12.04


2
untuk menemukan file postgis.sql Anda jalankan "temukan postgis.sql" dari bash (tanpa tanda kutip).
Kelso

Jawaban:


14

Sementara basis data Anda secara teknis spasial pada saat ini, Anda hanya akan bekerja dengan tipe geometri pg inbuilt.

Untuk menyelesaikan instalasi Anda, Anda perlu menjalankan skrip seperti yang disarankan.

Anda dapat menemukannya di /usr/share/postgresql/[version number]/contrib/sub-direktori postgis Anda .

Anda harus melihat yang berikut ini:

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

Jika Anda memiliki Ubuntu 12.04, maka Anda harus memiliki PostgreSQL 9.1, yang membuat semuanya menjadi luar biasa untuk PostGIS 2.0, di mana Anda dapat menggunakan menggunakan kerangka kerja EXTENSION baru. Untuk secara spasial mengaktifkan database, gunakan DDL dari jendela SQL:

CREATE EXTENSION postgis;

Lihat detail lain untuk menginstal PostGIS 2.0 dari sumber untuk Ubuntu 12.04 di sini .


Jika Anda menggunakan PostGIS 1.5, Anda akan memerlukan skrip enabler di "mydb", dijalankan dari shell:

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

Saya benar-benar melakukan goto /usr/share/postgresql/8.4/contrib/ dan menemukan file
.sql di

2
Untuk menggunakan fungsi-fungsi geometri seperti ST_Transformasi dan membuat kolom geometri, pengguna juga perlu GRANT SELECT ON spatial_ref_sys TO PUBLIC; GRANT ALL ON geometry_columns TO <pengguna yang saya inginkan>;
geekQ

1
Anda juga dapat menjalankan SELECT postgis_full_version();setelah itu untuk memeriksa apakah suatu basis data diaktifkan secara spasial.
XåpplI'-I0llwlg'I -
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.