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

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

Django v1.11.5

我正在尝试安装GeoDjango来玩Google地图。

我为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;创建了用户

完全错误:

正在运行迁移:应用users.0011_location ... 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 utility.execute()文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site- packages / django / core / management / init.py“,第356行,执行self.fetch_command(子命令).run_from_argv(self.argv)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/ site-packages / django / core / management / base.py“,第283行,在run_from_argv self.execute(* args,** cmd_options)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/ site-packages / django / core / management / base.py“,第330行,执行输出= self.handle(* args,** options)文件”/ Applications / Anaconda / anaconda / envs / DjangoEnv / lib / python3。 6 / site-packages / django / core / management / commands / migrate.py“,第204行,处理false_initial = fake_initial,文件“/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py”,第115行,处于migrate state = self._migrate_all_forwards (state,plan,full_plan,fake = fake,fake_initial = fake_initial)文件“/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py”,line 145,在_migrate_all_forwards state = self.apply_migration(state,migration,fake = fake,fake_initial = fake_initial)File“/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations /executor.py“,第244行,在apply_migration state = migration.apply(state,schema_editor)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/ “migration.py”,第129行,在apply operation.database_forwards(self.app_label,schema_editor,old_state,project_state)文件“/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/ django / db / migrations / operations / models.py“,第97行,在database_forwards中schema_editor.create_model(model)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db /backends/base/schema.py“,第254行,在create_model定义中,extra_params = self.column_sql(model,field)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/ django / db / backends / base / schema.py“,第144行,在column_sql中db_params = field.db_parameters(connection = self.connection)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site -packages / django / db / models / fields / init.py“,第662行,db_parameters中的type_string = self.db_type(connection)文件”/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site- package / django / contrib / gis / db / models / fields.py“,第126行,在db_type中返回connection.ops.geo_db_type(self)AttributeError:'DatabaseOperations'对象没有属性'geo_db_type'

我试过类似的问题:Getting 'DatabaseOperations' object has no attribute 'geo_db_type' error when doing a syncdb

python django postgresql geodjango
1个回答
6
投票

您需要更改您的DATABASES设置以使用postgis后端,

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

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

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