我正试图让我的第一个django应用程序启动,但我遇到了这个db错误:
OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
每当我尝试syncdb,migrate或createsuperuser
时都会发生这种情况我正在配置我的DATABASES变量:
DATABASES = {'default' : dj_database_url.config(default=os.environ["HEROKU_POSTGRESQL_OLIVE_URL"]) }
我需要配置其他东西还是做错了?
编辑(已解决):
感谢您帮助我缩小问题范围,我找到了解决方案。
由于这是我第一次部署到heroku并且我第一次使用了两个scoops django目录格式。我想做像
这样的事情python manage.py syncdb # would be okay
而不是因为我的设置文件夹看起来像
.../settings
base.py
local.py
production.py
demo.py
# ...
我需要做
python manage.py syncdb --app.settings.demo
答案 0 :(得分:1)
您的语法似乎正确,请在验证您升级DATABASE_URL
后尝试使用HEROKU_POSTGRESQL_OLIVE_URL
,尽管即使未升级也应该有效。
$ heroku pg:promote HEROKU_POSTGRESQL_OLIVE_URL
然后:
import dj_database_url
DATABASES = {
'default': dj_database_url.config(default=os.getenv('DATABASE_URL'))
}
此设置应该有效。否则,请检查您是否正在使用正确的设置文件。您可以通过运行以下来验证这一点:
$ heroku run python manage.py shell
然后:
>>> from django.conf import settings
>>> print settings.DATABASES['default']
并验证结果。
答案 1 :(得分:0)
我在.gitignore中出错,我的本地设置被Heroku错误地设置了。
这也会导致出现此错误消息。