Django: Воспроизведение миграций в тестовой среде

Основа вопроса

Моя версия разработки постоянно развивается со своей собственной базой данных. Я буду makemigrations и migrate множество раз и буду развивать локальную базу данных. Затем я размещаю свои изменения в GIT, как только чувствую, что версия готова для тестовой среды. Я возьму из мастера и начну работать над теми же миграциями для тестовой среды (у нее своя БД).

Выпуск

По мере постоянного развития кода на версии разработки (формы, представления и т.д.) они становятся зависимыми от models.py и структуры базы данных (импорты и использование моделей). Поэтому, когда я пытаюсь makemigrations на тестовом окружении, то там, где я ссылался на новые модели в forms.py, views.py, будут возникать ошибки зависимости. Например:

>>> python manage.py makemigrations
  File "C:\Users\<user>\<project>\<app>\forms.py", line 101, in UpdateCanisterForm
    choices=queryset_to_choice(CellModel.objects.all()),
  File "C:\Users\<user>\<project>\<app>\forms.py", line 34, in queryset_to_choice
    return [(x.id, x.__str__) for x in queryset]
  File "C:\Users\<user>\anaconda3\lib\site-packages\django\db\models\query.py", line 287, in __iter__
    self._fetch_all()
  [...]
django.db.utils.OperationalError: (1054, "Unknown column '<app>.site_id' in 'field list'")

Примечание: <> заменено для сохранения конфиденциальности

Текущее решение проблемы

В настоящее время я работаю над тем, чтобы закомментировать все новые поля, на которые ссылаются, пока код не будет доволен своими зависимостями и я смогу мигрировать.

Что я хочу

Я бы очень хотел улучшить этот метод, поэтому я хотел бы знать следующее:

  1. My migration strategy. Is there a more standardised approach to making migrations to the test environment.
  2. Can I makemigrations/migrate and get it to ignore certain source files which have dependencies to the models/fields.
Вернуться на верх