Saya mencoba membuat tabel dengan Postgis. Saya melakukannya dengan halaman ini . Tetapi ketika saya mengimpor file postgis.sql, saya mendapatkan banyak kesalahan:
ERROR: type "geometry" does not exist
Adakah yang tahu bagaimana cara memperbaikinya?
postgresql
geometry
postgis
yetty
sumber
sumber
postgis
. Saya perlu menjalankan perintah berikut, dan semuanya baik-baik saja:DO $$ BEGIN EXECUTE 'alter database '||current_database()||' set search_path = "$user", public, lookup, postgis'; END; $$ ;
Jika Postgis-Extension dimuat, SQL Anda mungkin tidak menemukan jenis geometri karena jalur pencarian ke skema publik tidak ada.
Mencoba
SET search_path = ..., publik;
di baris pertama scsript Anda. (ganti ... dengan jalur pencarian lain yang diperlukan)
sumber
Anda dapat melakukannya dari terminal:
sumber
Agar psql berhenti pada kesalahan pertama, gunakan
-v ON_ERROR_STOP=1
(yang dinonaktifkan secara default , itulah sebabnya Anda melihat banyak kesalahan). Sebagai contoh:Kesalahan sebenarnya adalah sesuatu seperti "tidak dapat memuat pustaka X", yang dapat bervariasi pada situasi Anda. Sebagai tebakan, coba perintah ini sebelum menginstal skrip sql:
(Anda mungkin perlu mengawali dengan
sudo
bergantung pada sistem Anda). Perintah ini memperbarui jalur ke semua pustaka sistem, seperti GEOS.sumber
Anda harus mengaktifkan ekstensi pada database Anda.
psql my_database -c "CREATE EXTENSION postgis;"
sumber
Kesalahan ini juga dapat terjadi jika Anda mencoba menggunakan tipe postgis pada skema lain daripada
public
.Jika Anda membuat skema Anda sendiri, menggunakan postgis 2.3 atau lebih tinggi dan mengalami kesalahan ini, lakukan hal berikut seperti yang dinyatakan di sini :
Kemudian Anda dapat melanjutkan untuk menggunakan fungsi postgis.
sumber
Anda juga perlu memastikan bahwa pengguna yang Anda coba gunakan ekstensi postgis, memiliki akses ke skema tempat postgis disiapkan (yang dalam tutorial yang saya baca disebut 'postgis').
Saya baru saja mengalami kesalahan ini, dan itu diselesaikan karena saya hanya memberikan akses pengguna baru ke database. Dalam database yang saya buat, saya menjalankan:
Dan ini memecahkan kesalahan ini
sumber
Jawaban di sini mungkin menyelesaikan masalah Anda, namun jika Anda sudah mengaktifkan postgis di DB Anda, masalahnya mungkin Anda mencoba memulihkan tabel postgis (dengan kolom geometri) ke dalam skema selain di mana ekstensi postgis Anda diaktifkan. Di pgAdmin Anda dapat mengklik ekstensi postgis dan melihat skema mana yang ditentukan. Jika Anda mencoba memulihkan tabel dengan kolom geometri ke skema yang berbeda, Anda mungkin mendapatkan kesalahan ini.
Saya menyelesaikan ini dengan mengubah ekstensi postgis saya - namun saya tidak yakin apakah itu cara terbaik untuk melakukannya. Yang saya tahu adalah bahwa itu memungkinkan saya untuk memulihkan tabel.
sumber
Atau...
dalam program python Anda, menggunakan kursor saat ini dari psycopg2.
sumber
Pertama, pastikan Anda memiliki (cocok dengan versi pg: psql -V) postgis diinstal:
Tepat sebelum pembuatan tabel tambahkan:
sumber