我是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上成功编译。任何帮助将不胜感激。让我知道是否有任何其他信息需要诊断问题。
最佳, 斯科特
要在您的本地环境中设置它,请在您的项目主目录中创建一个名为.env的文件,并添加DATABASE_URL = postgres:/// dbname,其中dbname是您的数据库的名称。然后通过“foreman run python manage.py syncdb”运行syncdb,以便加载环境变量。 – sean 2014-09-02 08:23:41