GeoDjango:PostgreSQL 不是 运行 迁移,对象没有属性 'geo_db_type
GeoDjango: PostgreSQL not running migrations, object has no attribute 'geo_db_type
Django v1.11.5
我正在尝试安装 GeoDjango 以使用 GoogleMaps。
我为 MAC 安装了 PostgreSQL 应用程序并安装了 pip install psycopg2
。我还使用自制软件安装 GDAL。
编辑 settings.py 添加:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'djangodb',
'USER': 'admin',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '5432',
}
}
但是,当我 运行 python manage.py
迁移时,我得到:AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
我创建用户使用:CREATE DATABASE djangodb OWNER admin;
完整错误:
Running migrations: Applying users.0011_location...Traceback (most
recent call last): File "manage.py", line 22, in
execute_from_command_line(sys.argv) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py",
line 364, in execute_from_command_line
utility.execute() File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py",
line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py",
line 283, in run_from_argv
self.execute(*args, **cmd_options) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py",
line 330, in execute
output = self.handle(*args, **options) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/commands/migrate.py",
line 204, in handle
fake_initial=fake_initial, File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py",
line 115, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File
"/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py",
line 145, in _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",
line 244, in apply_migration
state = migration.apply(state, schema_editor) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/migration.py",
line 129, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File
"/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/operations/models.py",
line 97, in database_forwards
schema_editor.create_model(model) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py",
line 254, in create_model
definition, extra_params = self.column_sql(model, field) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py",
line 144, in column_sql
db_params = field.db_parameters(connection=self.connection) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/models/fields/init.py",
line 662, in db_parameters
type_string = self.db_type(connection) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/fields.py",
line 126, in db_type
return connection.ops.geo_db_type(self) AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
我试过的类似问题:
Getting 'DatabaseOperations' object has no attribute 'geo_db_type' error when doing a syncdb
您需要更改 DATABASES
设置以使用 postgis 后端,
'ENGINE': 'django.contrib.gis.db.backends.postgis',
并将 'django.contrib.gis'
添加到 INSTALLED_APPS
。
Django v1.11.5
我正在尝试安装 GeoDjango 以使用 GoogleMaps。
我为 MAC 安装了 PostgreSQL 应用程序并安装了 pip install psycopg2
。我还使用自制软件安装 GDAL。
编辑 settings.py 添加:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'djangodb',
'USER': 'admin',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '5432',
}
}
但是,当我 运行 python manage.py
迁移时,我得到:AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
我创建用户使用:CREATE DATABASE djangodb OWNER admin;
完整错误:
Running migrations: Applying users.0011_location...Traceback (most recent call last): File "manage.py", line 22, in execute_from_command_line(sys.argv) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py", line 364, in execute_from_command_line utility.execute() File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/init.py", line 356, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 204, in handle fake_initial=fake_initial, File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py", line 115, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py", line 145, in _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", line 244, in apply_migration state = migration.apply(state, schema_editor) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/migration.py", line 129, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/operations/models.py", line 97, in database_forwards schema_editor.create_model(model) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 254, in create_model definition, extra_params = self.column_sql(model, field) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 144, in column_sql db_params = field.db_parameters(connection=self.connection) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/models/fields/init.py", line 662, in db_parameters type_string = self.db_type(connection) File "/Applications/Anaconda/anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/contrib/gis/db/models/fields.py", line 126, in db_type return connection.ops.geo_db_type(self) AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
我试过的类似问题: Getting 'DatabaseOperations' object has no attribute 'geo_db_type' error when doing a syncdb
您需要更改 DATABASES
设置以使用 postgis 后端,
'ENGINE': 'django.contrib.gis.db.backends.postgis',
并将 'django.contrib.gis'
添加到 INSTALLED_APPS
。