Django:用户对等身份验证失败

Django: Peer authentication failed for user

我已经有一个使用 sqlite3 的正常运行的网站,但我更喜欢用一个立即使用 PostgreSQL/PostGIS 的空项目重新启动我的网站项目。在 settings.py 配置结束时,我将转储以将所有 sqlite3 表上传到新数据库中。旧项目的任何模型都不会修改到这个新项目中。新旧项目的区别仅在于DBMS。

这是settings.py:

INSTALLED_APPS = [
...
'django.contrib.gis',
]
...
DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'my_project_name',
        'USER': 'db_user',
        'PASSWORD': 'password_of_db_user',
    }
}

在此之后,我尝试使用 python3 manage.py runserver 测试服务器,但我看到此错误消息:

django.db.utils.OperationalError: FATAL: Peer authentication failed for user "db_user"

我确定 NAMEUSERPASSWORD 是正确的,数据库在本地主机中。几周前,我创建了另一个简单的项目来学习 GeoDjango 使用相同的设置和那个网站 运行 很好。

您的配置中似乎缺少 host 字段:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'my_project_name',
        'USER': 'db_user',
        'PASSWORD': 'password_of_db_user',
        'HOST': 'localhost' # missing part
    }
}