Heroku部署Django后应用无法访问数据库、后台内容为空问题
Django部署Heroku数据库连接异常排查方案
- 首先确认依赖安装:必须安装
dj-database-url包用于解析Heroku自动生成的DATABASE_URL环境变量,将该包添加到你的requirements.txt文件后重新推送部署。 - 修正数据库配置:settings.py中数据库配置需要适配Heroku的SSL要求,参考写法如下:
import dj_database_url DATABASES = { 'default': dj_database_url.config( conn_max_age=600, ssl_require=True ) }
Heroku官方PostgreSQL服务默认强制要求SSL连接,未配置ssl_require=True会直接被拒绝连接。
- 执行数据库迁移:Heroku不会自动执行Django迁移命令,本地终端运行
heroku run python manage.py migrate,将模型对应的表结构同步到Heroku数据库中,未执行迁移时数据库无对应表,后台自然无内容展示。 - 创建超级管理员账号:迁移完成后运行
heroku run python manage.py createsuperuser,按提示设置账号密码后再登录后台查看。 - 查看日志定位问题:运行
heroku logs --tail查看实时运行日志,搜索DatabaseError、OperationalError相关报错可直接定位具体故障原因;也可运行heroku run python manage.py check --database default直接检测数据库连接状态。 - 本地数据同步操作:如果需要将本地测试数据同步到Heroku数据库,可先本地执行
python manage.py dumpdata > data.json导出数据,再运行heroku run python manage.py loaddata data.json导入到云端数据库。
内容的提问来源于stack exchange,提问作者Ramiro Lopez
相关产品推荐
相关产品推荐

