4

我正在使用https://devcenter.heroku.com/articles/django教程在 Heroku 上设置 Django 应用程序,但运行时遇到以下错误heroku run python manage.py syncdb

ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

本地同步时出现同样的错误。我已经阅读了 StackOverflow 上的所有线程,但没有解决这个问题。settings.py 的相关部分:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}


import dj_database_url
DATABASES['default'] =  dj_database_url.config()

# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# Allow all host headers
ALLOWED_HOSTS = ['*']

# Static asset configuration
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
4

2 回答 2

9

我不确定为什么教程会掩盖这一点——我经常看到类似的问题出现——但这是我为解决问题而采取的步骤。也值得阅读 Postgres 文档 - https://devcenter.heroku.com/articles/heroku-postgresql

heroku addons | grep POSTGRES1)在终端中使用创建一个 Postgres 数据库

2)将数据库连接到应用程序 -heroku addons:add heroku-postgresql:dev

3) 将 URL 提升为数据库 URL:heroku pg:promote HEROKU_POSTGRESQL_RED_URL

4)将此添加到您的settings.py中:

DATABASES['default'] = dj_database_url.config(default=os.environ.get('DATABASE_URL'))

于 2013-08-02T14:24:54.910 回答
-1

在您的设置中输入:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # Or another database
        'NAME': 'database.db',                      
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      
        'PORT': '',                      
    }
}
于 2013-08-01T20:49:10.517 回答