Я створив програму Docker Django / PostgreSQL, уважно дотримуючись інструкцій із швидкого запуску Django на сайті Docker .
Перший раз, коли я запускаю міграцію Django manage.py, використовуючи команду sudo docker-compose run web python manage.py migrate
, вона працює належним чином . База даних побудована всередині контейнера Docker PostgreSQL просто чудово.
Зміни, внесені в саму програму Django, також відображаються в контейнері Docker Django, як тільки я їх збережу. Це чудово!
Але якщо після цього я зміню модель у Django та спробую оновити базу даних Postgres, щоб вона відповідала моделі, ніяких змін не виявлено, тому жодної міграції не відбувається, скільки б разів я не запускався makemigrations
чи migrate
знову.
В основному, кожного разу, коли я змінюю модель Django, мені доводиться видаляти контейнери Docker (за допомогою sudo docker-compose rm
) і починати спочатку з новою міграцією.
Я все ще намагаюся розібратися з Докером, і я страшенно багато не розумію, як це працює, але цей зводить мене з розуму. Чому міграція не бачить мої зміни? Що я роблю не так?
You just have to log into your running docker container and run your commands.
але в чому причина, що вона поводиться так? @LouisBarranqueiro