J'ai configuré une application Docker Django / PostgreSQL en suivant attentivement les instructions de démarrage rapide de Django sur le site Docker .
La première fois que j'exécute le manage.py migrate de Django, en utilisant la commande sudo docker-compose run web python manage.py migrate
, cela fonctionne comme prévu. La base de données est construite à l'intérieur du conteneur Docker PostgreSQL très bien.
Les modifications apportées à l'application Django elle-même sont également reflétées dans le conteneur Docker Django, au moment où je les enregistre. C'est bien!
Mais si je change ensuite un modèle dans Django et que j'essaie de mettre à jour la base de données Postgres pour qu'elle corresponde au modèle, aucun changement n'est détecté, donc aucune migration ne se produit, quel que soit le nombre de fois que j'exécute makemigrations
ou migrate
encore.
En gros, chaque fois que je change le modèle Django, je dois supprimer les conteneurs Docker (en utilisant sudo docker-compose rm
) et recommencer avec une nouvelle migration.
J'essaie toujours de comprendre Docker, et il y a beaucoup de choses que je ne comprends pas sur son fonctionnement, mais celui-ci me rend dingue. Pourquoi la migration ne voit-elle pas mes modifications? Qu'est-ce que je fais mal?
You just have to log into your running docker container and run your commands.
mais quelle est la raison pour laquelle cela se comporte de cette façon? @LouisBarranqueiro