You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django无法连接PostgreSQL数据库问题求助

问题排查与解决思路

1. 先修正明显的拼写错误

你的数据库配置里ENGINE键拼写成了ENGINGE,这个低级错误会导致Django无法正确识别数据库引擎,即便.env里传了正确值,也会触发默认配置逻辑,直接影响后续连接。先把拼写改对:

'ENGINE': config('ENGINE', default='django.db.backends.postgresql'),

2. 确认.env配置的准确性

  • 检查.env文件里的NAME值,必须和生产环境PostgreSQL中实际创建的数据库名称完全一致(PostgreSQL库名区分大小写,如果创建时用引号指定了大小写,必须严格匹配)。本地能连公网库说明HOST、PORT、USER、PASSWORD是对的,但生产环境报错,大概率是.env里的NAME没设置,还在使用默认值"postgre",而生产环境根本没有这个库。
  • 验证方法:在生产环境服务器上用psql命令直接测试连接:psql -h 你的公网HOST -U 数据库USER -d 实际库名,如果能连上,说明库存在,问题出在Django没读到正确的NAME值。

3. 修正dj-database-url的写法

你当前的写法有语法问题,正确的配置方式应该是:

import dj_database_url

# 方式一:直接赋值默认配置
DATABASES = {
    'default': dj_database_url.config(default='postgresql://user:password@host:port/dbname')
}

# 方式二:读取.env里的DATABASE_URL
DATABASES['default'] = dj_database_url.config('DATABASE_URL')

同时确保.env里的DATABASE_URL格式正确:postgresql://用户名:密码@公网主机:端口/数据库名,重点确认末尾的数据库名和生产环境实际存在的一致。

4. 检查生产环境数据库是否真的存在

登录生产环境的PostgreSQL服务器,执行\l命令查看所有数据库列表,确认你要连接的库确实存在,并且当前配置的数据库用户有访问该库的权限。

内容的提问来源于stack exchange,提问作者Alien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:43:15