Bagaimana saya bisa memperbarui ogr2ogr untuk memasukkan driver PostgreSQL?


28

Saya mencoba menggunakan ogr2ogr untuk mengunggah shapefile ke instalasi PostGres jarak jauh. Ketika saya menjalankan perintah ini:

celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp;

Saya mendapat pesan kesalahan berikut:

Unable to find driver `PostgreSQL'.
The following drivers are available:
  -> `ESRI Shapefile'
  -> `MapInfo File'
  -> `UK .NTF'
 ...
  -> `SVG'
  -> `CouchDB'
  -> `Idrisi'
  -> `ARCGEN'
  -> `SEGUKOOA'
  -> `SEGY'

(Saya menghapus beberapa driver karena mereka tidak relevan). Apakah ada cara agar saya dapat memperbarui ogr2ogr untuk memasukkan PostgreSQL? Saya menggunakan Mac dengan OS 10.7.4

Jawaban:


25

Menggunakan Homebrew Anda harus:

buat install gdal --with-postgresql

atau dengan versi gdal yang lebih lama:

buat install gdal --with-postgres

jika Anda telah menginstal gdal dengan brew sebelumnya tetapi tanpa dukungan postgresql, cukup

buat uninstall gdal


2
koreksi kecil:brew install gdal --with-postgresql
BenjaminGolder

Akankah QGIS masih bekerja dengan GDAL homebrew?
Simbamangu

@Simbamangu Sure: homebrew hanyalah manajer paket, jadi versi GDAL yang dibagikannya sama dengan yang Anda bisa buat sendiri dari sumber
Andrea Cremaschi

2
Bagaimana Anda melanjutkan pada mesin windows? Idealnya menggunakan virtualenv
RutgerH

2
apa solusi untuk windows?
Denis Stephanov

5

Selamatkan dirimu dari rasa sakit dan gunakan binary / frameworks Kyngchaos untuk OSX .GDAL-Complete adalah yang kamu cari.

Pilihan lain adalah menggunakan HomeBrew .


AFAIK inilah yang saya gunakan. Saya tidak menginstalnya dengan cara lain.
djq

Apakah ada file ini: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib dan apa perintah 'yang ogrinfo' kembali dari terminal?
Ragi Yaser Burhum

which ogrinfokembali /usr/local/bin/ogrinfo. Saya menginstal GDAL dan yang lainnya dari KyngChaos sebelum menginstal QGis.
djq

Apakah file libpq yang saya sebutkan ada di lokasi itu?
Ragi Yaser Burhum

1
Jika libpq.dylib tidak ada di sana (pustaka klien PostgreSQL), pustaka OGR tidak akan memuat.
Ragi Yaser Burhum

4

dengan asumsi Anda telah mengkompilasi gdal dari sumber, cukup sertakan --with-pg = / path / ke / pg_config ketika Anda mengkonfigurasi gdal.

./configure -with-pg=/path/to/pg_config ...

./make clean

./make

./make install

EDIT: Catatan yang pg_configharus di direktori yang sama dengan binari PostgreSQL Anda yang lain, seperti psql, dll. Juga perhatikan, detail dari jawaban user259060 di bawah ini: Anda harus memverifikasi bahwa versi postgresql-server-dev yang sesuai telah diinstal (misalnya pada penggunaan Ubuntu apt list --installed | grep postgresql-server-devjika tidak ditemukan gunakan apt-cache search postgresql-server-devdan instal paket yang sesuai dengan sudo apt-get install postgresql-server-dev).


Tampaknya saya mendapatkan "dukungan PostgreSQL: ya" dalam ./configureoutput, tetapi mencoba ogr2ogr -f PostgreSQLmemberi ERROR 1: Unable to find driver 'PostgreSQL'. Juga, tidak ada PostgreSQLdalamogrinfo --formats
adamczi

sudahkah Anda menjalankan ldconfig setelah instalasi?
dmci

1
Lihat hasil edit untuk jawaban tentang menginstal postgresql-server-dev ,, yang seharusnya menangani kesalahan tersebut.
Thayer

2

Saya mendapat pesan yang sama saat di Windows.

Itu mengeluh tentang jenis kutipan (tunggal vs ganda) yang saya gunakan di sekitar string koneksi. Mengalihkan harga memperbaiki masalah.


2

Ada kemungkinan bahwa Anda mungkin melihat sesuatu seperti "dukungan PostgreSQL: tidak", meskipun Anda telah mengkonfigurasi sumber menggunakan "--with-pg = / path / ke / pg_config" ... dalam kasus itu, jalankan sudo apt- dapatkan instal postgresql-server-dev-all lalu coba lagi.


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.