Страница 1 из 1

из tab в postgis

Добавлено: 04 фев 2016, 13:31
kasandra
Здавствуйте!
Стоит задача ограмное количество tab файлов загрузить в Postgis.

Хотелось бы сделать это сразу, не проходя отдельно этапы конвертации в шейп , потом шейпы загружать в PostgreSQL.
Помогите разобраться, вот с помощью такой строки загружается один файл tab. Как сделать что бы это операция проделывалась сразу для нескольких?

C:\OSGeo4W64\bin\ogr2ogr.exe -f "PostgreSQL" PG:"host=localhost user=postgres dbname=test password=postgre" "E:\test_shp\*.tab" .

И было бы совсем отлично, если кто-то подскажет как сделать, что бы для разного типа геомтерии своя таблица создовалась. (Это не принципиально, могу потом и запросом разнести) .

Re: из tab в postgis

Добавлено: 04 фев 2016, 21:35
Дмитрий Барышников
Если задача не для скрипта, то можно попробовать NextGIS Manager.
Он правда из беты не вышел, но с задачей должен справиться.
Нужно:
1. В дереве перейти в "Подключения к БД"
2. Создать подключение к PostGIS и проверить что удается войти
3. Перейти в папку с табами и выбрать их всех (ctrl+A)
4. Скопировать (ctrl+C)
5. Перейти в подключение и выбрать схему (можно создать новую)
6. Вставить табы (Ctrl+V)

Еще наброски документации.

Re: из tab в postgis

Добавлено: 05 фев 2016, 00:10
MYS
C PostgreSQL дела не имел, но для автоматизации действий с командной строкой напрашивается командный файл.

Повторяете строку C:\OSGeo4W64\bin\ogr2ogr.exe -f "PostgreSQL" PG:"host=localhost user=postgres dbname=test password=postgre" "E:\test_shp\*.tab" в командном файле столько раз, сколько у вас *.tab файлов. Делаете колонку из имен ваших *.tab файлов. Нормальный редактор текстовых файлов (типа AkelPad) позволяет заменять в тексте одни колонку на другую. Выделяете колонку *.tab, вставляете на ее место колонку имен *.tab файлов. Командный файл готов.

Re: из tab в postgis

Добавлено: 05 фев 2016, 00:44
Максим Дубинин
ужасненько, учитывая что жив FOR

Код: Выделить всё

for %i in (*.tab) DO ogr2ogr.exe -f "PostgreSQL" PG:"host=localhost user=postgres dbname=test password=postgre" %i
разнесение по типам и другие примеры автоматизации смотрите в правильных местах

Re: из tab в postgis

Добавлено: 06 фев 2016, 10:41
kasandra
Спасибо огромное! Попробую все ворянты и поэксперементирую :)

Re: из tab в postgis

Добавлено: 09 фев 2016, 11:47
kasandra
Пробую загрузить файлы через командную строку в postgres, но видемо есть проблемы с кодировкой, так как выдает ошибку: ERROR 1: INSERT command for new feature failed.
ERROR: invalid byte sequence for encoding "UTF8": 0xd1 0xe5
----
for %i in (E:\data\*.tab) DO C:\OSGeo4W64\bin\ogr2ogr.exe -skipfailures -f "PostgreSQL" PG:"host=localhost user=postgres dbname=test password=postgre" %i
---

В результате данные загружаются, но без атрибутики. Как с этим можно с правиться?