【问题标题】:settings.DATABASES is improperly configured (Elasticsearch)settings.DATABASES 配置不正确(Elasticsearch)
【发布时间】:2018-01-06 14:16:36
【问题描述】:

我正在使用 elasticsearch 作为我的 Django 应用程序的数据库。但是每当我运行python manage.py rebuild_index 时,都会出现以下错误:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/base.py", line 305, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/base.py", line 356, in execute
    output = self.handle(*args, **options)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py", line 37, in handle
    call_command('update_index', **options)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/__init__.py", line 130, in call_command
    return command.execute(*args, **defaults)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/core/management/base.py", line 356, in execute
    output = self.handle(*args, **options)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 214, in handle
    self.update_backend(label, using)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 240, in update_backend
    total = qs.count()
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/query.py", line 369, in count
    return self.query.get_count(using=self.db)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/query.py", line 476, in get_count
    number = obj.get_aggregation(using, ['__count'])['__count']
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/query.py", line 457, in get_aggregation
    result = compiler.execute_sql(SINGLE)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 824, in execute_sql
    sql, params = self.as_sql()
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 374, in as_sql
    from_, f_params = self.get_from_clause()
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 612, in get_from_clause
    clause_sql, clause_params = self.compile(from_clause)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 353, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/datastructures.py", line 146, in as_sql
    base_sql = compiler.quote_name_unless_alias(self.table_name)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 344, in quote_name_unless_alias
    r = self.connection.ops.quote_name(name)
  File "/Manish/Projects/Spark/ad-tracking-django-env/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 21, in complain
    raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

主要错误是:

raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
    django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

我也在使用 Haystack 作为我的搜索引擎。我的 Haystack 连接的 settings.py 是:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine',
        'URL': 'http://127.0.0.1:9200/',
        'INDEX_NAME': 'haystack',
    },
}

【问题讨论】:

  • 在发生错误时显示 DATABASE 设置
  • 我不了解数据库部分。我应该声明 DATABASE 设置还是 HAYSTACK_CONNECTIONS 将扮演数据库连接的角色?如果我必须编写数据库设置,我应该如何编写它来将我的 django 应用程序与 elasticsearch 连接?
  • no haystack 连接与数据库不同,需要在设置文件中声明 DATABASE 设置,否则无法运行
  • 我应该在 DATABASE 设置中写什么?除了elasticsearch,我不想使用任何其他数据库。如何为 elasticsearch 配置数据库?

标签: python django elasticsearch django-haystack


【解决方案1】:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mydatabase',
    }
}

创建一个名为db.sqlite3 的文件,其中manage.py 是,然后运行您正在运行的文件

【讨论】:

  • 这不会将所有数据保存在sqlite中吗?我不明白到底发生了什么。你能详细说明一下吗?如果可能,请与我开始“聊天”
  • 不,当你使用 haystack 时它会重定向到那个,数据库只是为了让 django 正常运行
  • 我创建了一个数据库,所以我正在使用它'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'core', 'USER': 'user', 'PASSWORD': 'user', 'HOST': '10.10.105.253', 'PORT':' ', }我收到错误ValueError: Expecting property name: line 11 column 10 (char 274)
  • 请稍等。页面加载速度很慢
  • 你能看看我的新问题吗?它是关于RequestError: TransportError(400, u'parsing_exception')
猜你喜欢
  • 1970-01-01
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
相关资源
最近更新 更多