Запуск Docker-контейнера Django makemigrations

У меня есть два Docker-контейнера, один для MySQL, другой для Django. Я изменяю модель, которая требует миграции, и поэтому необходимо выполнить makemigrations: что мне сделать, чтобы в итоге на моем локальном диске был файл 000X_stuff.py, который, когда я запускаю контейнер Django и он выполняет действие миграции, происходит миграция?

Единственный вариант, который приходит на ум - это запустить docker exec -it CONTAINER_NAME python ./manage.py makemigrations APP_NAME. С этим возникают две проблемы:

  1. It only works the first time. Successive reruns of makemigrations claim there are no changes. The only way to overcome this is to drop the table and the appropriate row in the migrations table.
  2. If any Python migration files are generated, they are generated within the container. I would have to copy them manually from container to host if I want to commit them.

Основываясь на ответе Iain, мне пришлось добавить простой том в мой файл docker-compose, чтобы сделать файлы доступными локально:

volumes:
      - ./backend/server/project/migrations:/app/backend/server/project/migrations
Вернуться на верх