Eu configurei um aplicativo Docker Django / PostgreSQL seguindo de perto as instruções do Django Quick Start no site Docker .
A primeira vez que executo o manage.py migrate do Django, usando o comando sudo docker-compose run web python manage.py migrate
, ele funciona conforme o esperado. O banco de dados é construído dentro do contêiner Docker PostgreSQL perfeitamente.
As alterações feitas no próprio aplicativo Django são refletidas da mesma forma no contêiner Docker Django, no momento em que eu as salvo. É ótimo!
Mas se eu mudar um modelo no Django e tentar atualizar o banco de dados Postgres para corresponder ao modelo, nenhuma mudança é detectada, então nenhuma migração acontece, não importa quantas vezes eu execute makemigrations
ou migrate
novamente.
Basicamente, toda vez que eu mudo o modelo Django, tenho que deletar os contêineres do Docker (usando sudo docker-compose rm
) e começar do zero com uma nova migração.
Ainda estou tentando entender o Docker e há muita coisa que não entendo sobre como funciona, mas esse está me deixando maluco. Por que a migração não vê minhas alterações? O que estou fazendo de errado?
You just have to log into your running docker container and run your commands.
mas qual é a razão de ele se comportar dessa forma? @LouisBarranqueiro