django - 无法使用 docker.yml 文件进行迁移 - django+postgres
问题描述
当我尝试在 docker 上运行我的 django 项目时出现以下错误。
relation "DBTable" does not exist at character 218
我发现这是因为没有应用迁移。所以我改变了我的 Dockerfile 如下,在启动服务器之前进行迁移:
FROM python:3.7
WORKDIR /ServerCode2/
COPY . /ServerCode2/
RUN pip install -r req.txt
EXPOSE 8000
CMD ["python", "manage.py", "makemigrations" ]
CMD ["python", "manage.py", "migrate" ]
CMD ["python", "manage.py", "runserver", "--noreload" ]
下面是我的 docker-compose.yml 文件
version: '3.7'
services:
server:
build:
context: ./Appname
dockerfile: Dockerfile
image: serverimgtest1
container_name: servercontest1
ports:
- 8000:8000
links:
- db:db
depends_on:
- db
db:
image: postgres
environment:
POSTGRES_DB: "DBname"
POSTGRES_HOST_AUTH_METHOD: "trust"
ports:
- 5432:5432
client:
build:
context: ./appfrontend
dockerfile: Dockerfile
image: clientimgtest1
container_name: clientcontest1
depends_on:
- server
ports:
- 3000:3000
但是,我仍然看到表示关系不存在的错误。有什么方法可以通过 dockerFile 中的命令实现迁移?
解决方案
尝试运行:
docker-compose run server sh -c "python manage.py makemigrations"
然后
docker-compose run server sh -c "python manage.py migrate"
推荐阅读
- apache-spark - Spark:在每个分区中变得不同
- ios - JusPayExpress 结帐错误 - JSURLNotPassed (102)
- html - 清理 htaccess 文件以指示 cPanel 中的重定向
- javascript - email() 不是通过 onclick 属性实现的功能
- java - 正则表达式在java中的字符串中查找特定模式
- db2 - 合并包含时间范围的连续重复记录
- firebase - 使 firebase 服务器规则更改属性
- python - 通过网络同步文件夹
- asp.net-mvc - 如何使用 MVC4 中的引导程序在父视图中排列部分?
- php - 获取具有最高前缀值的数组元素