Я установил приложение Docker Django / PostgreSQL, внимательно следуя инструкциям Django Quick Start на сайте Docker .
Когда я в первый раз запускаю Django manage.py migrate, используя эту команду 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, и я очень многого не понимаю в том, как он работает, но этот сводит меня с ума. Почему миграция не видит мои изменения? Что я делаю не так?
You just have to log into your running docker container and run your commands.
но по какой причине он так себя ведет? @LouisBarranqueiro