Docker Compose Django 和 PostgreSql 出错

当我在 django 管理中创建任何对象时遇到问题。它向我显示了这个错误:


LINE 1: SELECT (1) AS "a" FROM "license_portal_client" WHERE

这是我的Dockerfile:


FROM python:3

ENV PYTHONUNBUFFERED 1

RUN mkdir /code

WORKDIR /code

COPY requirements.txt /code/

RUN pip install -r requirements.txt

COPY . /code/

这是我的docker-compose.yml:


version: '3'

    

services:

  db:

    image: postgres

    environment:

      - POSTGRES_DB=postgres

      - POSTGRES_USER=postgres

      - POSTGRES_PASSWORD=postgres

  web:

    build: .

    command: python license_portal/manage.py runserver 0.0.0.0:8000

    volumes:

      - .:/code

    ports:

      - "8000:8000"

    depends_on:

      - db

我的数据库settings.py和我已将我的应用程序添加到已安装的应用程序中:


DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql',

        'NAME': 'postgres',

        'USER': 'postgres',

        'PASSWORD': 'postgres',

        'HOST': 'db',

        'PORT': 5432,

    }

}

这是我的models.py:


from django.db import models


class Person(models.Model):

    first_name = models.CharField(max_length=30)

    last_name = models.CharField(max_length=30) 

还有我的admin.py:


from django.contrib import admin

from license_portal.models import Person


admin.site.register(Person)


慕哥9229398
浏览 151回答 1
1回答

慕少森

这可能是由于您的数据库未迁移。尝试从 django 容器内运行 django migrate 命令,并停止您可能拥有的任何现有数据库连接——例如web运行开发服务器的容器。# Stop all of the running containers to release all db connectionsdocker-compose stop# Run the migrate command inside of the django containerdocker-compose run web python license_portal/manage.py migrate# Start all of the containers again to access your dev serverdocker-compose up web
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python