Error with Docker Compose Django and 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)

这可能是因为您的数据库没有被迁移。请尝试从django容器中运行django-migrate命令,并停止任何现有的数据库连接,例如运行开发服务器的web容器。

# Stop all of the running containers to release all db connections
docker-compose stop
# Run the migrate command inside of the django container
docker-compose run web python license_portal/manage.py migrate
# Start all of the containers again to access your dev server
docker-compose up web

最新更新