2012-07-23 56 views
2

我是Heroku和Django/Python的新手。我希望为我遇到的问题找到答案。我一直在关注Heroku开发中心的入门教程:https://devcenter.heroku.com/articles/django在本地运行“python manage.py syncdb”时出错,但在通过Heroku运行同一命令时没有错误

运行命令并将应用程序代码推送到Heroku时,一切正常。例如,当我运行CLI命令“heroku run python manage.py syncdb”时,按预期方式运行,没有错误。然而,当我尝试在本地运行相同的命令,“蟒蛇manage.py执行syncdb”,我得到下面的输出和错误:

Scotts-MacBook-Pro:bonavina scottklieberman$ python manage.py syncdb 
    Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    ... 
    File "/Library/Python/2.7/site- packages/django/db/backends/postgresql_psycopg2/base.py", line 162, in _cursor 
    raise ImproperlyConfigured("You need to specify NAME in your Django settings file.") 
    django.core.exceptions.ImproperlyConfigured: You need to specify NAME in your Django settings file. 

然后我回去,并检查了我的settings.py文件。根据Heroku教程,我没有在设置文件中指定NAME,因为我使用的是dj_database_url。我很好奇为什么这是本地故障(为什么它需要NAME),而它正在Heroku上成功编译。任何帮助将不胜感激。让我知道是否有任何其他信息需要诊断问题。

最佳, 斯科特

回答

0

dj_database_url使用环境变量DATABASE_URL,这是设置在Heroku,但可能不会在本地环境设置(除非你自己设置)的值。

+0

要在您的本地环境中设置它,请在您的项目主目录中创建一个名为.env的文件,并添加DATABASE_URL = postgres:/// dbname,其中dbname是您的数据库的名称。然后通过“foreman run python manage.py syncdb”运行syncdb,以便加载环境变量。 – sean 2014-09-02 08:23:41

相关问题