Должен ли я добавить файлы миграции Django в файл .dockerignore /.gitignore?

Это, вероятно, дубликат этого вопроса.

Мой вопрос в том, как я должен подходить к этому при работе в среде docker, поэтому для моего проекта у меня есть docker-compose.yml и docker-compose-deploy.yml для моей производственной среды и, очевидно, файлы миграции генерируются только в образах docker и не включены в мою систему контроля версий.

Как я должен к этому подойти? Должен ли я отказаться от использования Docker в качестве среды разработки и перейти на что-то вроде виртуальных сред или даже машин?

Нет. Файлы миграции существуют для того, чтобы вы могли обновить свою базу данных, не разрушая ее и не восстанавливая с нуля (или выполняя sql-запросы обновления вручную).

Поэтому вы определенно хотите отслеживать их в системе контроля версий.

Во время разработки классический сценарий был бы

  1. писать код
  2. делайте миграции
  3. применяйте миграции на вашей базе данных dev
  4. протестируйте изменения локально
  5. зарегистрируйтесь и перенесите фиксацию на ваш производственный сервер
  6. выполните миграции (так что делайте только python manage.py migrate) в продакшене

Edit: Я забыл ответить на ваш вопрос о докере. Обычно вы помещаете исходный код в том вне контейнера, который затем монтируете в контейнер. Так что вы можете делать docker-разработку таким образом. Таким образом, файлы миграции и вверх в вашей кодовой базе, и вы можете отслеживать это.

Вернуться на верх