Як я можу оновити ogr2ogr, щоб включити драйвер PostgreSQL?


28

Я намагаюся використовувати ogr2ogr для завантаження файлу форми у віддалену установку PostGres. Коли я запустив цю команду:

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

Я отримав таке повідомлення про помилку:

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

(Я опустив деяких драйверів, оскільки вони не стосуються). Чи є спосіб я можу оновити ogr2ogr, щоб включити PostgreSQL? Я використовую Mac з ОС 10.7.4

Відповіді:


25

Використовуючи домашню мову, ви повинні:

варити встановити gdal --with-postgresql

або зі старими версіями gdal:

варити встановити gdal --with-postgres

якщо ви вже встановили gdal з варінням раніше, але без підтримки postgresql, просто

заваріть видалення gdal


2
невелика корекція:brew install gdal --with-postgresql
БенджамінГолдер

Чи QGIS все ще працюватиме з домашнім GDAL?
Сімбамангу

@Simbamangu Впевнений: homebrew - це лише менеджер пакунків, тому версія GDAL, яку він поширює, однакова, яку можна створити самостійно з джерела
Andrea Cremaschi

2
Як би ви діяли на машині Windows? Ідеально використовуючи virtualenv
RutgerH

2
що таке рішення для Windows, будь ласка?
Денис Стефанов

5

Збережіть собі біль і використовуйте пакунки / рамки для упаковки Kyngchaos для OSX .GDAL-Complete - це те, що ви шукаєте.

Ще один варіант - використовувати HomeBrew .


AFAIK - це те, чим я користувався. Я не встановив його іншим способом.
djq

Чи існує цей файл: /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib і що повертає команду "який ogrinfo" з терміналу?
Рагі Ясер Бурхум

which ogrinfoповертає /usr/local/bin/ogrinfo. Перед встановленням QGis я встановив GDAL та інші з KyngChaos.
djq

Чи існує в цьому місці файл libpq, який я згадав?
Рагі Ясер Бурхум

1
Якщо libpq.dylib немає (бібліотека клієнтів PostgreSQL), бібліотека OGR не завантажується.
Рагі Ясер Бурхум

4

припускаючи, що ви компілювали gdal з джерела, просто додайте --with-pg = / path / to / pg_config, коли ви налаштовуєте gdal.

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

./make clean

./make

./make install

EDIT: Зауважте, що він pg_configповинен знаходитися в одному каталозі з іншими вашими psqlбінарними файлами PostgreSQL, наприклад , тощо. Також зверніть увагу, що ця деталь з відповіді користувача259060 нижче: ви повинні перевірити, чи встановлена ​​відповідна версія postgresql-сервер-розробка (наприклад, для використання Ubuntu apt list --installed | grep postgresql-server-devякщо не знайдено використання apt-cache search postgresql-server-devта встановіть відповідний пакет разом із sudo apt-get install postgresql-server-dev).


Здається , я отримую «підтримку PostgreSQL: так» на ./configureвиході, але при спробі ogr2ogr -f PostgreSQLдає ERROR 1: Unable to find driver 'PostgreSQL'. Також немає PostgreSQLвogrinfo --formats
adamczi

Ви запустили ldconfig після встановлення?
dmci

1
Перегляньте редагування відповіді про встановлення postgresql-server-dev ,, що має вирішити помилку.
thayer

2

Це ж повідомлення я отримав під час роботи в Windows.

Він скаржився на тип лапок (одинарних проти подвійних), якими я користувався навколо рядка з'єднання. Переключення котирувань вирішило проблему.


2

Існує ймовірність, що ви можете побачити щось на кшталт "Підтримка PostgreSQL: ні", навіть якщо ви налаштували джерело за допомогою "--with-pg = / path / to / pg_config" ... у цьому випадку запустіть sudo apt- отримати встановити postgresql-server-dev-all, а потім повторити спробу.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.