Próbuję użyć ogr2ogr, aby przesłać plik shapefile do zdalnej instalacji PostGres. Kiedy uruchomiłem to polecenie:
celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp;
Otrzymałem następujący komunikat o błędzie:
Unable to find driver `PostgreSQL'.
The following drivers are available:
-> `ESRI Shapefile'
-> `MapInfo File'
-> `UK .NTF'
...
-> `SVG'
-> `CouchDB'
-> `Idrisi'
-> `ARCGEN'
-> `SEGUKOOA'
-> `SEGY'
(Pominąłem niektóre sterowniki, ponieważ nie są one istotne). Czy istnieje sposób, w jaki mogę zaktualizować ogr2ogr, aby zawierał PostgreSQL? Używam komputera Mac z systemem operacyjnym 10.7.4
brew install gdal --with-postgresql
Zaoszczędź sobie bólu i skorzystaj z pakietów binarnych / frameworków Kyngchaos dla OSX .GDAL-Complete jest tym, którego szukasz.
Inną opcją jest użycie HomeBrew .
źródło
which ogrinfo
zwraca/usr/local/bin/ogrinfo
. Zainstalowałem GDAL i inne z KyngChaos przed zainstalowaniem QGis.zakładając, że skompilowałeś gdal ze źródła, po prostu włącz --with-pg = / path / to / pg_config podczas konfigurowania gdal.
EDYCJA: Należy pamiętać, że
pg_config
powinien znajdować się w tym samym katalogu, co inne pliki binarne PostgreSQL, takie jakpsql
itp. Należy również pamiętać, że ten szczegół z odpowiedzi user259060 poniżej: należy sprawdzić, czy zainstalowana jest odpowiednia wersja serwera postgresql-dev (np. Na Ubuntuapt list --installed | grep postgresql-server-dev
jeśli nie znaleziono, użyjapt-cache search postgresql-server-dev
i zainstaluj odpowiedni pakiet za pomocąsudo apt-get install postgresql-server-dev
).źródło
./configure
wyjściu, ale starają sięogr2ogr -f PostgreSQL
dajeERROR 1: Unable to find driver 'PostgreSQL'
. Ponadto, nie maPostgreSQL
wogrinfo --formats
Ten sam komunikat dostałem podczas pracy w systemie Windows.
Narzekałem na rodzaj cudzysłowów (pojedynczy vs. podwójny), których używałem wokół ciągu połączenia. Zmiana cytatów naprawiła problem.
źródło
Istnieje możliwość, że zobaczysz coś w rodzaju „Obsługa PostgreSQL: nie”, mimo że źródło zostało skonfigurowane przy użyciu „--with-pg = / path / to / pg_config” ... w takim przypadku uruchom sudo apt- pobierz postgresql-server-dev-all, a następnie spróbuj ponownie.
źródło
Po przeczytaniu dokumentu formatu ogr2ogr Vector wygląda na to, że musisz zainstalować bibliotekę klienta PostgreSQL (libpq).
To podobne pytanie wydaje się dawać wgląd w rozwiązanie podobnego problemu, tylko z powiązaniami Pythona.
źródło