尝试按照here的说明在Heroku上设置Django实例。
直到安装Celery,直到以下步骤:
$ python manage.py syncdb
当我收到以下错误时:
提高ImproperlyConfigured(“settings.DATABASES不正确 配置。 “django.core.exceptions.ImproperlyConfigured: settings.DATABASES配置不正确。请提供发动机 值。检查设置文档以获取更多详细信息。
我相信我的settings.py
文件位于正确的地方(project-name/project-name)
,我正在运行django 1.4.3,但当我尝试运行manage.py diffsettings
时,我得到了以下输出:
BROKER_BACKEND ='django'### DATABASES = {'default':{'ENGINE': 'django.db.backends.dummy','TEST_MIRROR':无,'NAME':'', 'TEST_CHARSET':无,'TIME_ZONE':'UTC','TEST_COLLATION':无, 'PORT':'','主持人':'','用户':'','TEST_NAME':没有,'密码':'', '选项':{}}}
绝对不知道django.db.backends.dummy
条目来自何处,我的settings.py
有'ENGINE': 'django.db.backends.postgresql_psycopg2'
,我认为这是正确的条目,即使Heroku说明没有告诉您更新它在任何时候。
有什么想法我需要在这里编辑吗?
答案 0 :(得分:8)
我遇到了同样的问题。在https://devcenter.heroku.com/articles/django#prerequisites的Heroku文档中,它说要将以下内容添加到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}
这解决了我的问题。我希望它可以帮助其他有类似问题的人。
答案 1 :(得分:6)
尝试在settings.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')
答案 2 :(得分:1)
非常感谢Chatri,因为你建议添加default ='sqlite://db/sqlite3.db'修复了这个问题。