Heroku中的Django错误:"请提供ENGINE值"

DSb*_*ard 9 python django heroku

我阅读并应用"在Heroku上开始使用Django"教程但在同步db时遇到了问题:

raise ImproperlyConfigured("settings.DATABASES is improperly configured." 
django.core.exceptions.ImproperlyConfigured: 
settings.DATABASES is improperly configured. Please supply the ENGINE value. 
Run Code Online (Sandbox Code Playgroud)

我读了请提供ENGINE值Django数据库配置"settings.DATABASES未正确配置"错误执行syncj与django 1.4但仍然收到相同的错误.执行时

heroku run python manage.py --settings=moz455.settings syncdb
Run Code Online (Sandbox Code Playgroud)

我收到错误"未知命令:' - setstings = moz455.settings'".如何解决这个问题呢?

Django的版本是1.4.

set*_*ons 11

我遇到了同样的问题,但显然出于不同的原因.在https://devcenter.heroku.com/articles/django#prerequisites的Heroku文档中,它说要将以下内容添加到settings.py:

DATABASES['default'] =  dj_database_url.config()
Run Code Online (Sandbox Code Playgroud)

您可以传入以下参数:

DATABASES['default'] =  dj_database_url.config(default='postgres://user:pass@localhost/dbname')
Run Code Online (Sandbox Code Playgroud)

这将允许您在本地和Heroku上进行开发.实际解决我遇到的问题的部分是DATABASE_URL的Heroku配置环境变量实际上没有设置.为此,我跑了

$ heroku config
Run Code Online (Sandbox Code Playgroud)

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

$ heroko config:add DATABASE_URL={#the database url}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.我希望它可以帮助其他有类似问题的人.


Or *_*bel 8

在这里尝试所有答案并验证DATABASE_URL存在后,没有任何效果.

我添加了第二行并且它有效

DATABASES['default'] = dj_database_url.config() <--- heroko docs says this is enough
DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2' <---- add this
Run Code Online (Sandbox Code Playgroud)


DSb*_*ard 1

我自己解决了:在manage.py中添加类似于以下的代码:

CurDir = os.path.dirname(os.path.abspath(__file__))
ProjectDir = os.path.join(CurDir, "moz455")
sys.path += [ProjectDir]
Run Code Online (Sandbox Code Playgroud)

并使用以下命令提交更改:

git add -A
git commit -m "commit"
git push -f heroku
Run Code Online (Sandbox Code Playgroud)