Wie kann ich ogr2ogr aktualisieren, um den PostgreSQL-Treiber einzuschließen?

28

Ich versuche, mit ogr2ogr ein Shapefile in eine entfernte PostGres-Installation hochzuladen. Als ich diesen Befehl ausgeführt habe:

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

Ich habe folgende Fehlermeldung erhalten:

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

(Ich habe einige der Treiber weggelassen, da sie nicht relevant sind). Gibt es eine Möglichkeit, ogr2ogr zu aktualisieren, um PostgreSQL einzuschließen? Ich benutze einen Mac mit OS 10.7.4

djq
quelle

Antworten:

25

Mit Homebrew sollten Sie:

brauen installieren gdal --with-postgresql

oder mit älteren versionen von gdal:

brauen installieren gdal - mit-postgres

wenn du gdal mit brew schon mal installiert hast, aber ohne postgresql unterstützung, einfach

Brauen deinstallieren gdal

Andrea Cremaschi
quelle
2
eine kleine Korrektur:brew install gdal --with-postgresql
BenjaminGolder
Wird QGIS weiterhin mit dem Homebrew GDAL zusammenarbeiten?
Simbamangu
@ Simbamangu Sicher: Homebrew ist nur ein Paketmanager, daher sind die GDAL-Versionen, die es verteilt, dieselben, die Sie selbst aus dem Quellcode erstellen können
Andrea Cremaschi,
2
Wie würden Sie auf einer Windows-Maschine vorgehen? Idealerweise mit einem virtualenv
RutgerH
2
Was ist die Lösung für Windows bitte?
Denis Stephanov
5

Sparen Sie sich einige Schmerzen und verwenden Sie die in Kyngchaos enthaltenen Binärdateien / Frameworks für OSX. GDAL-Complete ist genau das, was Sie suchen.

Eine andere Möglichkeit ist die Verwendung von HomeBrew .

Ragi Yaser Burhum
quelle
AFAIK das habe ich benutzt. Ich habe es nicht anders installiert.
12.
Existiert diese Datei: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib und was gibt der Befehl 'which ogrinfo' vom Terminal zurück?
Ragi Yaser Burhum
which ogrinfokehrt zurück /usr/local/bin/ogrinfo. Ich habe GDAL und andere von KyngChaos installiert, bevor ich QGis installiert habe.
12.
Existiert die von mir erwähnte libpq-Datei an diesem Ort?
Ragi Yaser Burhum
1
Wenn libpq.dylib nicht vorhanden ist (die PostgreSQL-Clientbibliothek), wird die OGR-Bibliothek nicht geladen.
Ragi Yaser Burhum
4

vorausgesetzt, Sie haben GDAL aus dem Quellcode kompiliert, geben Sie --with-pg = / path / to / pg_config ein, wenn Sie GDAL konfigurieren.

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

./make clean

./make

./make install

BEARBEITEN: Beachten Sie, dass pg_configsich psqldiese Datei im selben Verzeichnis wie Ihre anderen PostgreSQL-Binärdateien befinden sollte, z apt list --installed | grep postgresql-server-devfalls nicht gefunden, benutze apt-cache search postgresql-server-devund installiere das entsprechende Paket mit sudo apt-get install postgresql-server-dev).

dmci
quelle
Scheint, ich bekomme "PostgreSQL-Unterstützung: ja" in der ./configureAusgabe, versuche aber zu ogr2ogr -f PostgreSQLgeben ERROR 1: Unable to find driver 'PostgreSQL'. Auch keine PostgreSQLinogrinfo --formats
adamczi
Haben Sie ldconfig nach der Installation ausgeführt?
DMCI
1
Lesen Sie die Bearbeitung der Antwort zur Installation von postgresql-server-dev, die den Fehler behandeln sollte.
27.
2

Ich habe unter Windows dieselbe Meldung erhalten.

Es wurde über die Art der Anführungszeichen (einfach oder doppelt) geklagt, die ich um die Verbindungszeichenfolge verwendete. Das Umschalten der Anführungszeichen behebt das Problem.

Michael
quelle
2

Es besteht die Möglichkeit, dass Sie so etwas wie "PostgreSQL-Unterstützung: Nein" sehen, obwohl Sie die Quelle mit "--with-pg = / path / to / pg_config" konfiguriert haben. Führen Sie in diesem Fall sudo apt- Installieren Sie postgresql-server-dev-all und versuchen Sie es erneut.

user259060
quelle