【发布时间】:2016-03-03 18:00:30
【问题描述】:
我已经在Django Quick Start instructions on the Docker site 之后设置了一个 Docker Django/PostgreSQL 应用程序。
我第一次运行 Django 的 manage.py migrate 时,使用命令 sudo docker-compose run web python manage.py migrate,它按预期工作。数据库构建在 Docker PostgreSQL 容器内就好了。
对 Django 应用程序本身所做的更改同样会在我保存它们的那一刻反映在 Docker Django 容器中。太棒了!
但是,如果我随后在 Django 中更改模型,并尝试更新 Postgres 数据库以匹配该模型,则不会检测到任何更改,因此无论我再次运行 makemigrations 或 migrate 多少次都不会发生迁移。
基本上,每次更改 Django 模型时,我都必须删除 Docker 容器(使用 sudo docker-compose rm)并重新开始新的迁移。
我仍在尝试了解 Docker,但我对它的工作原理有很多不明白的地方,但是这个让我发疯了。为什么迁移看不到我的更改?我做错了什么?
【问题讨论】:
-
你知道原因了吗?我得到下面的答案并且它有效:
You just have to log into your running docker container and run your commands.但它的行为方式是什么原因? @LouisBarranqueiro
标签: django docker docker-compose