Django “用户”的密码不匹配;博士后;从本地计算机删除postgresql后

Django “用户”的密码不匹配;博士后;从本地计算机删除postgresql后,django,postgresql,docker,Django,Postgresql,Docker,我在3个分开的docker容器中运行一个应用程序。一个用于postgresql,另一个用于Django,第三个用于nginx。在我的settings.py中,我从.env文件中检索数据库设置的数据,如下所示: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': os.environ.get('DB_NAME'), 'USER': os.e

我在3个分开的docker容器中运行一个应用程序。一个用于postgresql,另一个用于Django,第三个用于nginx。在我的
settings.py
中,我从
.env
文件中检索数据库设置的数据,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('POSTGRES_USER'),
        'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
        'HOST': os.environ.get('DB_HOST'),
        'PORT': os.environ.get('DB_PORT'),
    }
}
我使用
sqlite
进行开发,但使用postgresql构建docker映像,它工作得非常好。然后出于测试目的,我使用完全相同的设置将postgresql连接到django作为开发数据库。但在我返回sqlite并使用此db设置构建另一个映像之后,它实际上开始返回密码错误

db_1     |      Connection matched pg_hba.conf line 99: "host all all all md5"
db_1     | 2020-09-20 16:39:02.730 UTC [36] FATAL:  password authentication failed for user "postgres"
db_1     | 2020-09-20 16:39:02.730 UTC [36] DETAIL:  Password does not match for user "postgres".
我的docker撰写文件:

version: '3.8'

volumes:
  postgres_data:
  static:
  media:

services:
  db:
    image: postgres:latest
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env
  web:
    image: ashowlsky/foodgram:v3.8
    restart: always
    command: gunicorn foodgram.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - ./static:/code/static/
      - ./media:/code/media/
    ports:
      - "8000:8000"
    depends_on:
      - db
    env_file:
      - ./.env
  nginx:
    image: nginx:1.19.2
    ports: 
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./static:/code/static/
      - ./media:/code/media/
    depends_on:
      - web

原因可能是什么?

以及
/.env
的内容是什么?最可能的原因是您删除了Postgres群集,然后构建了一个新群集,并且没有添加回密码。仅供参考,要从Postgres群集保存全局数据,请使用
pg_dumpall-g
。这将保存
角色
信息,包括密码。