执行Django makemigrations时提示‘role ___ does not exist’问题排查
Django连接PostgreSQL用户角色不符问题排查
检查配置文件格式与内容
确认.pg_service.conf、.my_pgpass和settings.py里的用户名firstlast没有被空格、换行或错误分隔符截断。比如.my_pgpass的格式是hostname:port:database:username:password,如果用户名里误加了空格,系统会把空格前的first当作用户名读取。逐行核对所有配置文件的用户名字段,确保无格式错误。排查环境变量干扰
PostgreSQL客户端会优先读取PGUSER环境变量的值。执行命令echo $PGUSER查看当前值,如果输出是first,说明环境变量覆盖了你的配置。可以临时执行unset PGUSER清除该变量,再重新运行python manage.py makemigrations myapp;如果需要永久解决,修改系统的环境变量配置文件(比如~/.bashrc或~/.zshrc)删除对应的PGUSER设置。核对DATABASES配置
打开settings.py,确认DATABASES字典里的USER字段明确设置为'firstlast',没有拼写错误或截断。比如检查是否误写成'USER': 'first',或者字符串引号不匹配导致内容被截断。重启PostgreSQL服务
若之前修改过配置文件但未重启服务,可能存在配置缓存。重启本地PostgreSQL服务后,再执行迁移命令,确保新配置生效。
内容的提问来源于stack exchange,提问作者Oliver R
相关产品推荐
相关产品推荐

