django.db.utils.ProgrammingError: type "raster" does not exist
django.db.utils.ProgrammingError: type "raster" does not exist
我的模型:我在这里创建了 3 个模型,当我迁移时出现错误。
from django.contrib.gis.db import models
from django.contrib.gis.db.models.fields import RasterField
class WorldBorder(models.Model):
# Regular Django fields corresponding to the attributes in the
# world borders shapefile.
name = models.CharField(max_length=50)
area = models.IntegerField()
pop2005 = models.IntegerField('Population 2005')
fips = models.CharField('FIPS Code', max_length=2)
iso2 = models.CharField('2 Digit ISO', max_length=2)
iso3 = models.CharField('3 Digit ISO', max_length=3)
un = models.IntegerField('United Nations Code')
region = models.IntegerField('Region Code')
subregion = models.IntegerField('Sub-Region Code')
lon = models.FloatField()
lat = models.FloatField()
# GeoDjango-specific: a geometry field (MultiPolygonField)
mpoly = models.MultiPolygonField()
# Returns the string representation of the model.
def __str__(self):
return self.name
class Zipcode(models.Model):
code = models.CharField(max_length=5)
poly= models.PolygonField()
class Elevation(models.Model):
name = models.CharField(max_length=100,blank=True, null=True)
rast = RasterField(srid=2346)
我的设置.. 我使用的数据库是 Postgres,这样我就可以将 postgis 用于 geodjango
DATABASES = {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": "django_course",
"USER": "postgres",
"PASSWORD": "**************",
"HOST": "localhost",
"PORT": "5432",
}
}
在您的数据库设置中使用它
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'database_name',
'HOST': 'localhost',
'USER': 'user_name',
'PASSWORD': 'password',
'PORT': '5432',
}
}
您缺少 PostGIS Raster
扩展名。创建扩展并重试:
CREATE EXTENSION postgis_raster;
Note that a major change in 3.0 is that the raster functionality has
been broken out as a separate extension.
将这两行添加到您的迁移文件中elevation_zipcode.py:
from django.contrib.postgres.operations import CreateExtension
operations = [
CreateExtension('postgis_raster'),
我的模型:我在这里创建了 3 个模型,当我迁移时出现错误。
from django.contrib.gis.db import models
from django.contrib.gis.db.models.fields import RasterField
class WorldBorder(models.Model):
# Regular Django fields corresponding to the attributes in the
# world borders shapefile.
name = models.CharField(max_length=50)
area = models.IntegerField()
pop2005 = models.IntegerField('Population 2005')
fips = models.CharField('FIPS Code', max_length=2)
iso2 = models.CharField('2 Digit ISO', max_length=2)
iso3 = models.CharField('3 Digit ISO', max_length=3)
un = models.IntegerField('United Nations Code')
region = models.IntegerField('Region Code')
subregion = models.IntegerField('Sub-Region Code')
lon = models.FloatField()
lat = models.FloatField()
# GeoDjango-specific: a geometry field (MultiPolygonField)
mpoly = models.MultiPolygonField()
# Returns the string representation of the model.
def __str__(self):
return self.name
class Zipcode(models.Model):
code = models.CharField(max_length=5)
poly= models.PolygonField()
class Elevation(models.Model):
name = models.CharField(max_length=100,blank=True, null=True)
rast = RasterField(srid=2346)
我的设置.. 我使用的数据库是 Postgres,这样我就可以将 postgis 用于 geodjango
DATABASES = {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": "django_course",
"USER": "postgres",
"PASSWORD": "**************",
"HOST": "localhost",
"PORT": "5432",
}
}
在您的数据库设置中使用它
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'database_name',
'HOST': 'localhost',
'USER': 'user_name',
'PASSWORD': 'password',
'PORT': '5432',
}
}
您缺少 PostGIS Raster
扩展名。创建扩展并重试:
CREATE EXTENSION postgis_raster;
Note that a major change in 3.0 is that the raster functionality has been broken out as a separate extension.
将这两行添加到您的迁移文件中elevation_zipcode.py:
from django.contrib.postgres.operations import CreateExtension
operations = [
CreateExtension('postgis_raster'),