GeoDjango: PostgreSQL没有运行迁移,对象没有属性'geo_db_type'。

9

Django v1.11.5

我想安装GeoDjango来体验GoogleMaps的功能。

我在MAC上安装了PostgreSQL应用程序并安装了pip install psycopg2。我还使用home-brew安装了GDAL。

编辑settings.py并添加以下内容:

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

然而,当我运行python manage.py migrate时,我收到以下错误提示:AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'

我使用以下命令创建了用户:CREATE DATABASE djangodb OWNER admin;

完整错误信息:

运行迁移:应用用户.0011位置...最近一次的调用(Traceback)如下:在manage.py文件中,第22行执行execute_from_command_line(sys.argv)时出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py文件中,第364行的execute_from_command_line函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py文件中,第356行的execute函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py文件中,第283行的run_from_argv函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py文件中,第330行的execute函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/commands/migrate.py文件中,第204行的handle函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py文件中,第115行的migrate函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py文件中,第145行的_migrate_all_forwards函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py文件中,第244行的apply_migration函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/migration.py文件中,第129行的apply函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/operations/models.py文件中,第97行的database_forwards函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py文件中,第254行的create_model函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py文件中,第144行的column_sql函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/models/fields/init.py文件中,第662行的db_parameters函数出错。在/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/fields.py文件中,第126行的db_type函数出错。'DatabaseOperations'对象没有'geo_db_type'属性。

我尝试了类似的问题: syncdb时出现“DatabaseOperations”对象没有属性“geo_db_type”的错误


1
你链接到了这个问题,但是在你的DATABASES设置中,你使用的是django.db.backends.postgresql而不是django.contrib.gis.db.backends.postgis - Alasdair
非常感谢。现在似乎可以运行迁移了。我尝试了django.db.backends.postgresql_psycopg2和问题中列出的那个,但都出现了错误。我甚至创建了新的虚拟环境进行测试。再次感谢! - Roma
1个回答

14

你需要更改DATABASES设置,以使用postgis后端。

'ENGINE': 'django.contrib.gis.db.backends.postgis',

并将 'django.contrib.gis' 添加到 INSTALLED_APPS 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接