Python django-将数据库添加到heroku时出错
我正努力在heroku上部署我的应用程序。主要是由于数据库配置 这是settings.py文件的底部Python django-将数据库添加到heroku时出错,python,django,heroku,Python,Django,Heroku,我正努力在heroku上部署我的应用程序。主要是由于数据库配置 这是settings.py文件的底部 import dj_database_url DATABASES = { 'default': dj_database_url.config() } try: from .local_settings import * except ImportError: pass 这是我的本地_settings.py文件 import dj_database_url DATABASE
import dj_database_url
DATABASES = { 'default': dj_database_url.config() }
try:
from .local_settings import *
except ImportError:
pass
这是我的本地_settings.py文件
import dj_database_url
DATABASES = { 'default': dj_database_url.config() }
try:
from .local_settings import *
except ImportError:
pass
导入操作系统
BASE_DIR=os.path.dirname(os.path.dirname(文件)
我可以成功运行heroku本地网站
但是当我运行时,heroku运行python manage.py migrate
,它会给我错误
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
当我运行时,heroku运行python manage.py shell
然后跑
>>> import dj_database_url
>>> dj_database_url.config()
我从字典里得到了数据库的全部信息
问题出在哪里?首先尝试从
local\u settings.py
导入设置,然后更改数据库
设置
import dj_database_url
try:
from .local_settings import *
except ImportError:
pass
DATABASES = { 'default': dj_database_url.config() }
您已经在文件中定义了一个数据库
变量,但是当您导入本地设置.py
时,您的数据库
配置将被开发值覆盖。您应该先进行导入,然后更改数据库
选项
就个人而言,我建议您保留一个base\u settings.py
来包含除数据库以外的所有设置,然后将其导入heroku\u settings.py
,而不是导入整个本地设置
保持基本设置
,开发设置
,heroku设置
(或生产设置)将使部署更容易处理。不应部署本地设置文件。它仅供本地使用,因此得名。您应该将它从git回购中排除。为什么不应该部署它?因为它是本地使用的。正如另一个答案所说,它覆盖了生产数据库设置,从而删除了dj_数据库_url的全部内容。