尝试设置 Django 时配置不正确( "settings.DATABASES is improperly configured. " ) 错误



尝试按照此处的说明在Heroku上设置Django实例。

一直到安装芹菜,直到以下步骤:

$ python manage.py syncdb

当我得到以下错误:

引发ImproperlyConfigurated("settings.DATABASES不正确已配置。"django.core.exceptions.ImproverlyConfigured:设置。DATABASES配置不正确。请提供发动机价值有关详细信息,请查看设置文档。

我相信我的settings.py文件位于(project-name/project-name)的正确位置,并且我正在运行django 1.4.3,但当我尝试运行manage.py diffsettings时,我得到以下输出:

BROKER_BACKEND='django'###数据库={默认值:{ENGINE:'django.db.backends.dummy','TEST_MIRROR':无,'NAME':'',"TEST_CHARSET":无,"TIME_ZONE":"UTC","TEST_COLLATION":无,"PORT":","HOST":"","USER":","TEST_NAME":无,"PASSWORD":","选项":{}}

完全不知道django.db.backends.dummy条目来自哪里,我的settings.py'ENGINE': 'django.db.backends.postgresql_psycopg2',我认为这是正确的条目,尽管Heroku指令没有告诉你在任何时候更新它。

有什么想法我需要在这里编辑吗?

我遇到了同样的问题。在Heroku文档中https://devcenter.heroku.com/articles/django#prerequisites,它说要在settings.py中添加以下内容:

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

您可以传入以下参数:

DATABASES['default'] =  dj_database_url.config(default='postgres://user:pass@localhost/dbname')

这将使您能够在本地和Heroku上进行开发。但真正解决我问题的部分是,DATABASE_URL的Heroku配置环境变量实际上并没有设置。为了设置这个,我运行了

$ heroku config

我看到数据库URL被分配给一个单独的配置变量。所以我创建了一个新的变量:

$ heroko config:add DATABASE_URL={#the database url}

这解决了我的问题。我希望它能帮助其他有类似问题的人。

尝试在设置.py 中的DATABASE设置之后添加这些行

# Your Database setting. 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '',  # Or path to database file if using sqlite3.
        'USER': '',  # Not used with sqlite3.
        'PASSWORD': '',  # Not used with sqlite3.
        'HOST': '',  # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',  # Set to empty string for default. Not used with sqlite3.
    }
}
# Add these two lines.
import dj_database_url
DATABASES['default'] = dj_database_url.config(default='sqlite://db/sqlite3.db')

非常感谢Chatri建议添加default='sqlite://db/sqlite3.db’解决了这个问题。

相关内容

最新更新