27

I'm trying to use ogr2ogr to upload a shapefile to a remote PostGres installation. When I ran this command:

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

I got the following error message:

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

(I omitted some of the drivers as they are not relevant). Is there a way that I can update ogr2ogr to include PostgreSQL? I'm using a Mac with OS 10.7.4

25

Using Homebrew you should:

brew install gdal --with-postgresql

or with older versions of gdal:

brew install gdal --with-postgres

if you have already installed gdal with brew before but without postgresql support, just

brew uninstall gdal

  • 2
    a small correction: brew install gdal --with-postgresql – BenjaminGolder Jan 16 '14 at 22:02
  • Will QGIS still work with the homebrew GDAL? – Simbamangu Apr 16 '14 at 8:20
  • @Simbamangu Sure: homebrew is just a package manager, so the GDAL versions it distributes are the same you can build yourself from source – Andrea Cremaschi Apr 16 '14 at 8:31
  • 2
    How would you proceed on a windows machine? Ideally using a virtualenv – RutgerH Dec 7 '16 at 21:41
  • 2
    what is solution for windows please? – Denis Stephanov Feb 21 '17 at 16:03
5

Save yourself some pain and use the Kyngchaos packaged binaries/frameworks for OSX.GDAL-Complete is the one you are looking for.

Another option is to use HomeBrew.

  • AFAIK this is what I used. I didn't install it any other way. – djq Sep 12 '12 at 21:48
  • Does this file exist: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib and what does the 'which ogrinfo' command return from the terminal? – Ragi Yaser Burhum Sep 12 '12 at 23:05
  • which ogrinfo returns /usr/local/bin/ogrinfo. I installed GDAL and others from KyngChaos before installing QGis. – djq Sep 12 '12 at 23:24
  • Does the libpq file I mentioned exist in that location? – Ragi Yaser Burhum Sep 12 '12 at 23:37
  • 1
    If libpq.dylib is not there (the PostgreSQL client library), the OGR library will not load. – Ragi Yaser Burhum Sep 14 '12 at 22:14
3

assuming you've compiled gdal from source, just include --with-pg=/path/to/pg_config when you're configuring gdal.

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

./make clean

./make

./make install
  • Seems I get "PostgreSQL support: yes" in ./configure output, but trying to ogr2ogr -f PostgreSQL gives ERROR 1: Unable to find driver 'PostgreSQL'. Also, no PostgreSQL in ogrinfo --formats – adamczi Nov 14 '18 at 0:53
  • have you run ldconfig after the installation? – dmci Nov 14 '18 at 8:44
2

I got this same message while on Windows.

It was complaining about the type of quotes (single vs. double) I was using around the connection string. Switching the quotes fixed the issue.

1

From reading the ogr2ogr Vector formats doc, it looks like you need to install the PostgreSQL client library (libpq).

This similar question seems to give some insight into resolving a similar issue, just with Python bindings.

1

There is a possibility that you might see something like "PostgreSQL support: no", even though you have configured the source using "--with-pg=/path/to/pg_config"...in that case, run sudo apt-get install postgresql-server-dev-all and then retry.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.