当前位置: 首页 > 面试题库 >

执行syncdb时,获取“ DatabaseOperations”对象没有属性“ geo_db_type”错误

禹智渊
2023-03-14
问题内容

我试图heroku run python manage.py syncdb在Heroku的我的GeoDjango应用程序上运行,但出现以下错误:

AttributeError:“ DatabaseOperations”对象没有属性“ geo_db_type”

我所有的 研究都得出了相同的解决方案:确保用作数据库引擎。有趣的是,我已经这样做了(我也有在): django.contrib.gis.db.backends.postgisdjango.contrib.gisINSTALLED_APPS

settings.py

DATABASES = {
  'default': {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': '...',
    'HOST': '...',
    'PORT': ...,
    'USER': '...',
    'PASSWORD': '...'
  }
}

INSTALLED_APPS = (
    ...,
    'django.contrib.gis',
)

还有其他我想念的东西吗?非常感谢您的帮助,以下是完整的错误跟踪供参考:

Running `python manage.py syncdb` attached to terminal... up, run.1
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/app/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/app/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/app/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 91, in handle_noargs
    sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
  File "/app/lib/python2.7/site-packages/django/db/backends/creation.py", line 44, in sql_create_model
    col_type = f.db_type(connection=self.connection)
  File "/app/lib/python2.7/site-packages/django/contrib/gis/db/models/fields.py", line 200, in db_type
    return connection.ops.geo_db_type(self)
AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'

问题答案:

该OP是使用GeoDjango内置buildpack,但如果有人在这里得到使用地理buildpack和dj_database_url喜欢我,在settings.py不要忘记最后一行:

import dj_database_url
DATABASES['default'] = dj_database_url.config()
DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.postgis'

更新

dj_database_url直接支持 PostGIS。如果可以将数据库URL更改为以开头,则可以不用上面代码的最后一行postgis



 类似资料:
  • Django v1.11.5 我试图安装GeoDjango来玩谷歌地图。 我为MAC安装了PostgreSQL应用程序,并安装了。我还使用自制软件安装GDAL。 要添加的已编辑设置.py: 但是,当我运行migrate时,我得到: 我创建用户使用: 完全错误: 运行迁移:Applying users.0011_location…Traceback(最后一次调用):在execute_from_com

  • 问题内容: 我正在尝试在Python中获取url参数。 我正在使用此代码: 但我收到此错误: 问题答案: 你想request.args在Flask中使用GET参数。 要访问通过URL(?key = value)提交的参数,可以使用args属性:

  • 当我执行代码时,我得到一个错误, 属性错误:“WebDriver”对象没有属性“find_element_by_xpath”

  • 问题内容: 我正在尝试从中文网站中抓取一些javascript生成的内容。我正在使用Selenium(和Python),因为我无法直接抓取javascript内容。 我得到以下错误: 实际上,我似乎无法在selenium.selenium类中调用任何命令。毫无疑问,我忽略了非常明显的事情。提前致谢。 问题答案: 您只需要。 执行以获取页面上的html元素(最大的元素)。(您可以通过多种方式执行此操

  • 在这个错误之前,它已经给了我另一个“xrange不存在”之类的信息,所以我查找了它,并将nx_shp.py文件中的更改为,这似乎解决了这个问题。 根据我所读到的内容,它可能与Python版本(Python2 vs Python3)有关。

  • 我遇到了这个错误,它不允许我在表单中保存信息。初始数据在表单中显示良好,但保存起来很困难。希望有人能帮忙,我真的被困了 追踪: 内部 41 中的文件“C:\程序文件\Python35\lib\site-packages\django\core\处理程序\exception.py”。响应 = get_response(请求) 文件"C:\Program Files\Python35\lib\site