我已经按照Docker站点上的Django Quick Start指导紧密设置了Docker Django / PostgreSQL应用程序。
第一次运行Django的manage.py migration时,使用命令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,但我对它的工作原理有很多不了解,但这使我发疯。为什么不迁移看到我的更改?我究竟做错了什么?
你只需要登录到正在运行的docker容器并运行命令。
docker-compose build -f path/to/docker-compose.yml
docker-compose up -f path/to/docker-compose.yml
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fcc49196a84 ex_nginx "nginx -g 'daemon off" 3 days ago Up 32 seconds 0.0.0.0:80->80/tcp, 443/tcp ex_nginx_1
66175bfd6ae6 ex_webapp "/docker-entrypoint.s" 3 days ago Up 32 seconds 0.0.0.0:32768->8000/tcp ex_webapp_1
# postgres docker container ...
获取你的django应用程序的容器ID并登录:
docker exec -t -i 66175bfd6ae6 bash
现在你已登录,然后转到正确的文件夹: cd path/to/django_app
现在,每次编辑模型时,都在容器中运行:python manage.py makemigrations和python manage.py migrate
我还建议你为django docker
容器文件使用docker-entrypoint
自动运行:
这是一个示例(docker-entrypoint.sh)
:
#!/bin/bash
# Collect static files
echo "Collect static files"
python manage.py collectstatic --noinput
# Apply database migrations
echo "Apply database migrations"
python manage.py migrate
# Start server
echo "Starting server"
python manage.py runserver 0.0.0.0:8000
问题内容: 我正在尝试分发在几个链接的容器中运行的一组连接的应用程序,这些容器包括一个mongo数据库,该数据库需要: 分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将保存在链接的数据卷容器中。 我可以使用不装载任何卷的基本实例(dockerhub映像:-本质上是不带该语句的基本mongo Dockerfile )和配置的方式将数据放入容器中: 其中与Dockerfile 位于
我正在使用我的Mac上的docker-compose(使用boot2docker)与官方的WordPress Docker图像一起工作。我需要做一次一次性的数据导入。我不知道该怎么做。如何将数据导入数据库容器?
问题内容: 我想做这样的事情,我可以依次运行多个命令。 问题答案: 想通了,使用 。 例: 多行中的相同示例: 要么:
分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将持久化在链接的数据卷容器中。 我可以使用不装入任何卷的基实例(dockerhub映像:-这基本上是没有语句的基mongo Dockerfile)和一个配置,将数据放入容器中: 其中与DockerFile位于同一目录()中。 我的docker-compose配置文件包括以下内容: 每当我尝试装入卷时,似乎会删除存储在中的原始种子数据
我正在构建一个Django应用程序,它有几个应用程序。使用SQLite数据库作为后端运行良好。当我试图使用“manage.py migrate”将后端迁移到Oracle时,我发现了以下错误 django.db.utils.DatabaseError:ORA-01950:对表空间“XXXXXX”没有权限 当我在数据库中检查我的用户权限时,它有创建表、视图等的权限。我尝试执行“manage.py sq
我有一篇docker文章。yml,我有一个Postgres数据库,Grafana在上面运行以查询数据。 我用命令docker compose up启动这个compose,但是如果我不想丢失任何数据,我必须运行docker compose stop,而不是docker compose down。 我还阅读了,但“提交操作将不包括安装在容器内的卷中包含的任何数据”,所以我想它对我的需求没有用。 存储创