He configurado una aplicación Docker Django / PostgreSQL siguiendo de cerca las instrucciones de inicio rápido de Django en el sitio de Docker .
La primera vez que ejecuto manage.py migrate de Django, usando el comando sudo docker-compose run web python manage.py migrate
, funciona como se esperaba. La base de datos está construida dentro del contenedor Docker PostgreSQL muy bien.
Los cambios realizados en la propia aplicación Django también se reflejan en el contenedor Docker Django, en el momento en que los guardo. ¡Es genial!
Pero si luego cambio un modelo en Django e intento actualizar la base de datos de Postgres para que coincida con el modelo, no se detectan cambios, por lo que no se produce ninguna migración, sin importar cuántas veces lo ejecute makemigrations
o de migrate
nuevo.
Básicamente, cada vez que cambio el modelo de Django, tengo que eliminar los contenedores de Docker (usando sudo docker-compose rm
) y comenzar de nuevo con una nueva migración.
Todavía estoy tratando de entender a Docker, y hay muchas cosas que no entiendo sobre cómo funciona, pero este me está volviendo loco. ¿Por qué migrar no ve mis cambios? ¿Qué estoy haciendo mal?
You just have to log into your running docker container and run your commands.
pero ¿cuál es la razón por la que se comporta de esa manera? @LouisBarranqueiro