我正在使用带有django的Postgresql数据库,并且已经在PostGis中使用了
CREATE EXTENSION postgis;
gdal
,proj.4
和geos
已经安装在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上安装Gdal
,Geos
和proj
?
根据文档,您需要按照以下步骤在项目中设置GIS后设置:
> 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 informationsettings.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