
[英]django.db.utils.OperationalError: FATAL: role “django” does not exist
[英]django.db.utils.OperationalError: FATAL: database “library” does not exist
我正在尝试使用 docker 将我的项目与 postgres 数据库连接。当我使用默认的 postgres 设置时它工作正常
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': 5432
}
}
但是当我尝试使用 postgre admin 创建数据库并想在我的 django 项目中使用它时,它会显示错误。 我的 Dockerfile:
Dockerfile
# Pull base image
FROM python:3.7
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/
数据库的 settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'library',
'USER': 'postgres',
'PASSWORD': 'my_password',
'HOST': 'db',
'PORT': 5432
}
}
和 docker-compose.yml
docker-compose.yml
version: '3.7'
services:
db:
hostname: db
image: postgres:11
environment:
- POSTGRES_DB=library
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=my_password
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgres_data:
当 postgres 映像首次启动并且没有数据时,它将创建一个名为POSTGRES_DB
环境变量的数据库。
您已经在卷中创建了一个数据库。 您应该删除您的postgres_data
卷并重新启动,以便创建具有新名称的数据库。 向下传递-v
到docker-compose down
以删除任何卷
docker-compose down -v
docker-compose up -d
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.