Почему он выдает `GeoDjango Postgis требования, не удовлетворяющие получению ошибки при выполнении миграций? - PullRequest
1 голос
/ 10 марта 2019

Я использую базу данных Postgresql с django и уже установил в PostGis на ней, используя

CREATE EXTENSION postgis;

gdal, proj.4 и geos уже установлены в contrib.gis django package.Как указано в документации , они должны быть установлены до установки PostGis.Означает ли это, что они должны быть установлены в базе данных Postgresql или как-то еще.

1) Нужно ли устанавливать их в базе данных postgresql?

Пока что я включил в settings.py

INSTALLED_APPS = [
      .
      .
      'django.contrib.gis',
]

DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '......',
        'USER' : '.........',
        'PASSWORD': '........',
        'HOSTNAME': 'localhost',
        'PORT': '5432',
    },
}

Но когда я включил это в models.py.

 from django.contrib.gis.db import models as geomodels

2) Я попытался запустить миграцию, я получаю эту ошибку:

 django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Is GDAL in

остановился?Если это так, попробуйте установить GDAL_LIBRARY_PATH в своих настройках.

Я не уверен, что я должен исправить для запуска миграций, и если эта ошибка связана с базой данных или django

3) Нужно ли мнеустановить Gdal, Geos и proj на django и postgresql?

1 Ответ

0 голосов
/ 10 марта 2019

Необходимо выполнить следующие шаги для настройки пост ГИС в вашем проекте согласно документации:

  1. Установить GEOS , PROJ.4 и GDAL на вашем компьютере, на котором установлена ​​postgres до установки расширения PostGIS для вашего проекта.Документация по установке была включена в ссылку.Вы можете проверить требования к установке PostGIS с здесь .

  2. Создание пространственной базы данных.После установки вышеуказанных требований создайте расширение PostGIS .Вы можете сделать это, выполнив следующий код в вашей оболочке postgres

    > CREATE EXTENSION postgis;
    

    или добавить следующую миграцию в свой проект

    from django.contrib.postgres.operations import CreateExtension
    from django.db import migrations
    
    class Migration(migrations.Migration):
    
        operations = [
            CreateExtension('postgis'),
            ...
        ]
    

    Посетите здесь для получения дополнительной информации

  3. После этого вы можете добавить ниже к вашему settings.py

    DATABASES = {
        'default': {
             'ENGINE': 'django.contrib.gis.db.backends.postgis',
             'NAME': 'geodjango',
             'USER': 'geo',
        },
    }
    
    INSTALLED_APPS = [
        ..
        ..
        'django.contrib.admin',
        'django.contrib.gis',
        ..
        ..
    
    ]
    
    

После выполнения этих шагов вы можете использовать django PostGIS.Для получения дополнительной информации по установке PostGIS посетите https://docs.djangoproject.com/en/2.1/ref/contrib/gis/tutorial/#setting-up

...