为什么它会抛出`GeoDjango Postgis要求不满足运行迁移时出错?

问题描述 投票:1回答:1

我正在使用带有django的Postgresql数据库,并且已经在PostGis中使用了

CREATE EXTENSION postgis;

gdalproj.4geos已经安装在contrib.gis django package。正如documentation所说,应该在安装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)我是否需要在django和postgresql上安装GdalGeosproj

python django postgresql postgis geodjango
1个回答
0
投票

根据文档,您需要按照以下步骤在项目中设置GIS后设置:

  1. 在将PostGIS扩展安装到项目之前,在安装了postgres的计算机上安装GEOSPROJ.4GDAL。安装文档已包含在链接中。您可以从here检查PostGIS安装要求。 For installing GEOS For installing PROJ.4 For installing GDAL
  2. 创建空间数据库。安装上述要求后,创建PostGIS扩展。你可以通过在postgres shell中执行以下代码来实现 > CREATE EXTENSION postgis; 或者您可以将以下迁移添加到项目中 from django.contrib.postgres.operations import CreateExtension from django.db import migrations class Migration(migrations.Migration): operations = [ CreateExtension('postgis'), ... ] Visit here for more information
  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

© www.soinside.com 2019 - 2024. All rights reserved.