Comment puis-je mettre à jour ogr2ogr pour inclure le pilote PostgreSQL?


28

J'essaie d'utiliser ogr2ogr pour télécharger un fichier de formes vers une installation PostGres distante. Lorsque j'ai exécuté cette commande:

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

J'ai reçu le message d'erreur suivant:

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

(J'ai omis certains des pilotes car ils ne sont pas pertinents). Existe-t-il un moyen de mettre à jour ogr2ogr pour inclure PostgreSQL? J'utilise un Mac avec OS 10.7.4

Réponses:


25

En utilisant Homebrew, vous devez:

brew install gdal --with-postgresql

ou avec des versions plus anciennes de gdal:

brew install gdal --with-postgres

si vous avez déjà installé gdal avec brew auparavant mais sans support postgresql,

désinstaller bdal gdal


2
une petite correction:brew install gdal --with-postgresql
BenjaminGolder

QGIS fonctionnera-t-il toujours avec l'homebrew GDAL?
Simbamangu

@Simbamangu Sure: homebrew n'est qu'un gestionnaire de paquets, donc les versions GDAL qu'il distribue sont les mêmes que vous pouvez construire vous-même à partir des sources
Andrea Cremaschi

2
Comment procéderiez-vous sur une machine Windows? Idéalement en utilisant un virtualenv
RutgerH

2
quelle est la solution pour windows s'il vous plaît?
Denis Stephanov

5

Épargnez-vous de la peine et utilisez les binaires / frameworks Kyngchaos pour OSX .GDAL-Complete est celui que vous recherchez.

Une autre option consiste à utiliser HomeBrew .


AFAIK c'est ce que j'ai utilisé. Je ne l'ai pas installé autrement.
djq

Ce fichier existe-t-il: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib et que renvoie la commande 'which ogrinfo' depuis le terminal?
Ragi Yaser Burhum,

which ogrinforetourne /usr/local/bin/ogrinfo. J'ai installé GDAL et d'autres de KyngChaos avant d'installer QGis.
djq

Le fichier libpq que j'ai mentionné existe-t-il à cet emplacement?
Ragi Yaser Burhum,

1
Si libpq.dylib n'est pas là (la bibliothèque cliente PostgreSQL), la bibliothèque OGR ne se charge pas.
Ragi Yaser Burhum,

4

en supposant que vous avez compilé gdal à partir des sources, incluez simplement --with-pg = / path / to / pg_config lorsque vous configurez gdal.

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

./make clean

./make

./make install

EDIT: notez que cela pg_configdevrait être dans le même répertoire que vos autres binaires PostgreSQL, comme psql, etc. apt list --installed | grep postgresql-server-devs'il n'est pas trouvé, utilisez apt-cache search postgresql-server-devet installez le package correspondant avec sudo apt-get install postgresql-server-dev).


Il semble que j'obtienne "PostgreSQL support: yes" en ./configuresortie, mais j'essaie de ogr2ogr -f PostgreSQLdonner ERROR 1: Unable to find driver 'PostgreSQL'. De plus, pas PostgreSQLdansogrinfo --formats
adamczi

avez-vous exécuté ldconfig après l'installation?
dmci

1
Voir la modification de la réponse concernant l'installation de postgresql-server-dev, qui devrait gérer l'erreur.
thayer

2

J'ai reçu ce même message sous Windows.

Il se plaignait du type de guillemets (simples ou doubles) que j'utilisais autour de la chaîne de connexion. Le changement de devis a résolu le problème.


2

Il est possible que vous voyiez quelque chose comme "Support PostgreSQL: non", même si vous avez configuré la source en utilisant "--with-pg = / path / to / pg_config" ... dans ce cas, exécutez sudo apt- installez postgresql-server-dev-all, puis réessayez.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.