¿Cómo puedo actualizar ogr2ogr para incluir el controlador PostgreSQL?

28

Estoy tratando de usar ogr2ogr para cargar un archivo de forma a una instalación remota de PostGres. Cuando ejecuté este comando:

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

Recibí el siguiente mensaje de error:

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

(Omití algunos de los controladores ya que no son relevantes). ¿Hay alguna manera de actualizar ogr2ogr para incluir PostgreSQL? Estoy usando una Mac con OS 10.7.4

djq
fuente

Respuestas:

25

Usando Homebrew deberías:

brew install gdal --with-postgresql

o con versiones anteriores de gdal:

brew install gdal --with-postgres

si ya ha instalado gdal con brew antes pero sin soporte postgresql, solo

brew desinstalar gdal

Andrea Cremaschi
fuente
2
una pequeña corrección:brew install gdal --with-postgresql
BenjaminGolder
¿QGIS seguirá funcionando con el homebrew GDAL?
Simbamangu
@Simbamangu Claro: homebrew es solo un administrador de paquetes, por lo que las versiones de GDAL que distribuye son las mismas que puedes construir desde la fuente
Andrea Cremaschi
2
¿Cómo procederías en una máquina con Windows? Idealmente usando un virtualenv
RutgerH
2
¿Cuál es la solución para Windows por favor?
Denis Stephanov
5

Ahórrese un poco de dolor y use los marcos / binarios empaquetados de Kyngchaos para OSX. GDAL-Complete es el que está buscando.

Otra opción es usar HomeBrew .

Ragi Yaser Burhum
fuente
AFAIK esto es lo que usé. No lo instalé de otra manera.
djq
¿Existe este archivo: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib y qué devuelve el comando 'which ogrinfo' desde el terminal?
Ragi Yaser Burhum
which ogrinfovuelve /usr/local/bin/ogrinfo. Instalé GDAL y otros de KyngChaos antes de instalar QGis.
djq
¿Existe el archivo libpq que mencioné en esa ubicación?
Ragi Yaser Burhum
1
Si libpq.dylib no está allí (la biblioteca del cliente PostgreSQL), la biblioteca OGR no se cargará.
Ragi Yaser Burhum
4

suponiendo que ha compilado gdal desde la fuente, solo incluya --with-pg = / path / to / pg_config cuando configure gdal.

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

./make clean

./make

./make install

EDITAR: Tenga en cuenta que pg_configdebe estar en el mismo directorio con sus otros binarios de PostgreSQL, como psql, etc. También tenga en cuenta que este detalle de la respuesta de user259060 a continuación: debe verificar que esté instalada una versión apropiada de postgresql-server-dev (por ejemplo, en el uso de Ubuntu apt list --installed | grep postgresql-server-devsi no se encuentra el uso apt-cache search postgresql-server-deve instalar el paquete correspondiente con sudo apt-get install postgresql-server-dev).

dmci
fuente
Parece que obtengo "Soporte de PostgreSQL: sí" en la ./configuresalida, pero intento ogr2ogr -f PostgreSQLdar ERROR 1: Unable to find driver 'PostgreSQL'. Además, no PostgreSQLenogrinfo --formats
adamczi
¿Has ejecutado ldconfig después de la instalación?
dmci
1
Vea la edición de la respuesta sobre la instalación de postgresql-server-dev ,, que debería manejar el error.
thayer
2

Recibí este mismo mensaje mientras estaba en Windows.

Se quejaba del tipo de comillas (simple versus doble) que estaba usando alrededor de la cadena de conexión. Cambiar las comillas solucionó el problema.

Miguel
fuente
2

Existe la posibilidad de que vea algo como "Soporte PostgreSQL: no", aunque haya configurado la fuente usando "--with-pg = / path / to / pg_config" ... en ese caso, ejecute sudo apt- obtenga instalar postgresql-server-dev-all y luego vuelva a intentarlo.

usuario259060
fuente