繁体   English   中英

django.db.utils.OperationalError:致命:数据库“库”不存在

django.db.utils.OperationalError: FATAL: database “library” does not exist

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用 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:
1 个回复

当 postgres 映像首次启动并且没有数据时,它将创建一个名为POSTGRES_DB环境变量的数据库。

您已经在卷中创建了一个数据库。 您应该删除您的postgres_data卷并重新启动,以便创建具有新名称的数据库。 向下传递-vdocker-compose down以删除任何卷

docker-compose down -v
docker-compose up -d
10 django.db.utils.OperationalError:数据库已锁定

我将django项目从Eclipse(在Windows上)移到了Linux机器上,并尝试从命令行运行它。 一旦我做了python manage.py runserver,我就得到了:django.db.utils.OperationalError:数据库被锁定 这是我第一次在linu ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM