Skonfigurowałem aplikację Docker Django / PostgreSQL ściśle według instrukcji szybkiego startu Django na stronie Docker .
Kiedy po raz pierwszy uruchamiam migrację manage.py Django za pomocą polecenia sudo docker-compose run web python manage.py migrate
, działa to zgodnie z oczekiwaniami. Baza danych jest dobrze zbudowana wewnątrz kontenera Docker PostgreSQL.
Zmiany dokonane w samej aplikacji Django są również odzwierciedlane w kontenerze Docker Django, w momencie ich zapisywania. Wspaniale!
Ale jeśli następnie zmienię model w Django i spróbuję zaktualizować bazę danych Postgres, aby pasowała do modelu, żadne zmiany nie zostaną wykryte, więc migracja nie nastąpi, niezależnie od tego, ile razy uruchomię makemigrations
lub migrate
ponownie.
Zasadniczo za każdym razem, gdy zmieniam model Django, muszę usunąć kontenery Dockera (używając sudo docker-compose rm
) i zacząć od nowa z nową migracją.
Nadal próbuję się skupić na Dockerze i jest strasznie dużo rzeczy, których nie rozumiem, jak to działa, ale to doprowadza mnie do szału. Dlaczego migracja nie wyświetla moich zmian? Co ja robię źle?
You just have to log into your running docker container and run your commands.
ale jaki jest powód, dla którego tak się zachowuje? @LouisBarranqueiro