配置PostgreSQL与Django连接时遇'my_service'未找到错误
解决Django PostgreSQL服务定义找不到的问题
问题排查与修复步骤
1. 调整pg_service.conf的位置或配置环境变量
PostgreSQL不会自动识别你放在settings.py同级目录的pg_service.conf文件,需要明确指定其位置:
- Windows系统:设置环境变量
PGSERVICEFILE指向该文件的绝对路径,示例:
也可将文件移至默认路径:set PGSERVICEFILE=C:\Users\oliver\base\correlator2v2\correlator2home\pg_service.conf%APPDATA%\postgresql\pg_service.conf(目录不存在则手动创建) - Linux/macOS系统:设置环境变量
PGSERVICEFILE,或直接将文件放到~/.pg_service.conf路径下
2. 统一密码文件名与配置
你的settings.py中指定的passfile是.my_pgpass,但实际创建的文件名为mypg_pass,二者需保持一致:
- 要么将文件名改为
.my_pgpass - 要么将settings.py里的
passfile值修改为mypg_pass
同时注意pgpass文件的格式:正确格式为hostname:port:database:username:password,你当前写的localhost:5432:PostgreSQL 14:postgres:LetMeIn中,数据库名位置填了版本号,需替换为pg_service.conf里配置的NAME值。
3. 验证连接有效性
修改完成后,先用psql手动测试连接:
psql service=my_service
若能成功连接,再执行python manage.py check即可正常运行。
内容的提问来源于stack exchange,提问作者Mike Oliver
相关产品推荐
相关产品推荐

