“Docker上的Django-关系”;django_会议”;字符109处不存在
我正在尝试使用Docker运行Django项目,但出现以下错误: 全输出:“Docker上的Django-关系”;django_会议”;字符109处不存在,django,docker,docker-compose,Django,Docker,Docker Compose,我正在尝试使用Docker运行Django项目,但出现以下错误: 全输出: 我应该检查什么?我自己无法调试它。您需要运行迁移来创建数据库表 通常,可以使用migrate命令执行此操作 python manage.py migrate 在您的情况下,需要在容器内运行migrate。提供了如何执行此操作的说明: docker-compose run django python manage.py migrate 您也可以仅为sessions应用程序运行迁移 docker-compose -f p
我应该检查什么?我自己无法调试它。您需要运行迁移来创建数据库表 通常,可以使用migrate命令执行此操作
python manage.py migrate
在您的情况下,需要在容器内运行migrate。提供了如何执行此操作的说明:
docker-compose run django python manage.py migrate
您也可以仅为sessions应用程序运行迁移
docker-compose -f production.yml(local.yml) run django python manage.py
migrate sessions
如果运行“migrate”命令没有为您创建表,请检查django_migrations表中名为“sessions”的“app”列中的条目
如果有条目,则删除它们(从django_迁移中删除,其中app='sessions';)并重新运行“migrate”脚本。
这同样适用于您可能正在使用的其他缺少数据库表的应用程序。迁移脚本将只运行django_迁移表中未列出的脚本。适合我的脚本 首先,我执行创建图像的命令
docker compose build
,然后执行docker compose up
django服务器启动后,我打开另一个命令行,连接到容器(docker exec-it container\u name bash
),并在python manage.py migrate;python manage.py makemigrations
中执行
顺便说一下,以下是我的Dockerfile和docker-compose.yml文件内容:
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY . /code/
我之前做过(在我问问题之前)运行它时发生了什么?由于表不存在,它看起来不起作用,但您没有提供任何信息来帮助调试。我得到了所有迁移都已执行的标准信息,例如:应用xxx.0003_auto…OK等。如果现在运行它,我有:我从头开始,现在有:-On 127.0.0.1 is
Internal服务器错误
。日志如下:
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY . /code/
version: '3'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"