Проблема с подключением БД postgresql к проекту QGIS

Ответить
Аватара пользователя
Crackfox
Активный участник
Сообщения: 131
Зарегистрирован: 02 мар 2016, 20:29
Репутация: 17
Ваше звание: разрядник
Откуда: Москва
Контактная информация:

Проблема с подключением БД postgresql к проекту QGIS

Сообщение Crackfox » 11 мар 2019, 15:08

Добрый день!
Пытаемся подключить БД postgresql к QGIS.
База сгенерированна Django, использовался класс MultiPolygonField, тип данных geography (geometry тоже пробовали - не помогло), srid установлен.
В Qgis подключение установлено но при добавлении слоя qgis требуется определить тип геометрия и srid (хотя казалось бы мыж это сделали уже). Ок, добавляем, но при сохранении изменений в слое вылетает это:

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

Не удалось внести изменения в слой cutarea_qartalkeys

Ошибки: ОШИБКА: не добавлен 1 объект.
  
  Ошибки источника:
      Ошибка PostGIS при добавлении объектов: ERROR:  function geomfromwkb(bytea, integer) does not exist
    СТРОКА 1: ...om","id","district_forestry_id_id") VALUES (multi(geomfromwk...
                                                                   ^
    ПОДСКАЗКА:  No function matches the given name and argument types. You might need to add explicit type casts.
    
почему используется бинарный geomfromwkb и тем более почему у функции возникает в аргументах бинарный тип и integer одноврменно мне не понятно.

на всякий случай типичный класс модельки django:

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

class QartalKeys(models.Model):

    id = models.IntegerField(primary_key=True)
    district_forestry_id = models.ForeignKey(DistrForestKeys, models.DO_NOTHING, blank=True, null=True)
    geom = models.MultiPolygonField(srid = 4326, null=True, blank=True, verbose_name='геометрия')


    class Meta:
        managed = True
        verbose_name = 'квартал'
        verbose_name_plural =  'кварталы'
Как все это пофиксить?

Аватара пользователя
Crackfox
Активный участник
Сообщения: 131
Зарегистрирован: 02 мар 2016, 20:29
Репутация: 17
Ваше звание: разрядник
Откуда: Москва
Контактная информация:

Re: Проблема с подключением БД postgresql к проекту QGIS

Сообщение Crackfox » 11 мар 2019, 15:09

PS QGIS 3.4.4

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Проблема с подключением БД postgresql к проекту QGIS

Сообщение trir » 11 мар 2019, 15:28

виноват Django - неправильно БД создал
в базе надо выполнить запрос:
CREATE EXTENSION postgis;
SELECT postgis_full_version();

Аватара пользователя
Crackfox
Активный участник
Сообщения: 131
Зарегистрирован: 02 мар 2016, 20:29
Репутация: 17
Ваше звание: разрядник
Откуда: Москва
Контактная информация:

Re: Проблема с подключением БД postgresql к проекту QGIS

Сообщение Crackfox » 12 мар 2019, 10:07

trir, расширение было добавлено еще при создании БД.
Прописал в классах Django идентификатор СК, тип геометрии - консоль требует ввести default значения. ввожу ' ' или н-р ('POLIGON('0. 0. 0. 0.')') но хрен там, консоль бросает мне:

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

ValueError: String input unrecognized as WKT EWKT, and HEXEWKB.
вопрос конечно уже не совсем по postgis..
Кстати в новую БД, пустую, мигрировать классы с пространственными полями тож не хочет, падла такая.

Аватара пользователя
Crackfox
Активный участник
Сообщения: 131
Зарегистрирован: 02 мар 2016, 20:29
Репутация: 17
Ваше звание: разрядник
Откуда: Москва
Контактная информация:

Re: Проблема с подключением БД postgresql к проекту QGIS

Сообщение Crackfox » 12 мар 2019, 13:31

Дабы Django корректно сгенерировал таблицы с геометрией в конфигах класса Django указываем

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

geography = True
. Это помогло.

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей