Django.db.utils.ProgrammingError:类型栅格&不存在 [英] django.db.utils.ProgrammingError: type "raster" does not exist

查看:14
本文介绍了Django.db.utils.ProgrammingError:类型栅格&不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的模型:我在这里创建了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",
}
}

推荐答案

您缺少PostGIS Raster扩展名。创建扩展并重试:

CREATE EXTENSION postgis_raster;

引用自documentation

请注意,3.0中的一个主要变化是栅格功能具有 已细分为一个单独的扩展

这篇关于Django.db.utils.ProgrammingError:类型栅格&不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆