было бы желательно, чтобы я запустил makemigrations и зафиксировал его.
Вы правы, миграции всегда должны совершаться в репо.
Должен ли я попытаться открыть контейнер PostgreSQL и изменить файл settings.py DATABASE, чтобы иметь возможностьзапустить команду makemigrations из локальной сессии bash?
Я бы не стал делать это лично.
Вопрос о том, как приблизиться к бесшовной интеграции между локальным кодом и докером, - вопроскоторый имеет много ответов.Мне нравится монтировать мой код в контейнер как том, а затем, когда вы запустите makemigrations
в контейнере, на вашем компьютере также появятся созданные миграции.
Что-то подобное в docker-compose.yml
app:
...
volumes:
- path/to/local/src/:/src/
working_dir: /src
где /src
- папка с вашим manage.py
.Теперь, когда вы выполните
docker exec -it container_name python manage.py makemigrations
, он создаст файл миграции на вашем локальном компьютере, и у вас не возникнет проблем с копированием его туда и обратно.
Хотя остерегайтесь прав доступа к файлам, так какв этом случае миграции могут быть созданы с владельцем root в зависимости от вашей операционной системы.Но это для другого вопроса, я думаю.