Должен ли я добавить файлы миграции Django в файл .dockerignore /.gitignore?
Это, вероятно, дубликат этого вопроса.
Мой вопрос в том, как я должен подходить к этому при работе в среде docker, поэтому для моего проекта у меня есть docker-compose.yml и docker-compose-deploy.yml для моей производственной среды и, очевидно, файлы миграции генерируются только в образах docker и не включены в мою систему контроля версий.
Как я должен к этому подойти? Должен ли я отказаться от использования Docker в качестве среды разработки и перейти на что-то вроде виртуальных сред или даже машин?
Нет. Файлы миграции существуют для того, чтобы вы могли обновить свою базу данных, не разрушая ее и не восстанавливая с нуля (или выполняя sql-запросы обновления вручную).
Поэтому вы определенно хотите отслеживать их в системе контроля версий.
Во время разработки классический сценарий был бы
- писать код
- делайте миграции
- применяйте миграции на вашей базе данных dev
- протестируйте изменения локально
- зарегистрируйтесь и перенесите фиксацию на ваш производственный сервер
- выполните миграции (так что делайте только
python manage.py migrate
) в продакшене
Edit: Я забыл ответить на ваш вопрос о докере. Обычно вы помещаете исходный код в том вне контейнера, который затем монтируете в контейнер. Так что вы можете делать docker-разработку таким образом. Таким образом, файлы миграции и вверх в вашей кодовой базе, и вы можете отслеживать это.