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

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

Добавлено: 11 мар 2019, 15:08
Crackfox
Добрый день!
Пытаемся подключить БД 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 =  'кварталы'
Как все это пофиксить?

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

Добавлено: 11 мар 2019, 15:09
Crackfox
PS QGIS 3.4.4

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

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

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

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

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

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

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

Добавлено: 12 мар 2019, 13:31
Crackfox
Дабы Django корректно сгенерировал таблицы с геометрией в конфигах класса Django указываем

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

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