Создайте новое поле int в модели Django из существующих полей bool

У меня есть модель с несколькими полями bool. Я хотел бы заменить их одним полем int, где каждый бит представляет один из старых bool. Я добавил новое поле int и запустил makemigrations. Есть ли способ изменить файл миграций и определить, как я хочу, чтобы были определены значения новых полей int? Как я уже сказал, я бы хотел, чтобы они принимали значения предыдущих bool-полей

Миграция данных - это то, что вам нужно.

  1. Добавьте новое поле в модель, примените makemigrations.
  2. Создайте миграцию данных, которая перенесет данные из старых полей в новые, и запустите ее.
  3. Удалите старые поля.

Миграция данных может быть создана с помощью:

python manage.py makemigrations --empty yourappname

Внутри него вы должны использовать RunPython или RunSQL в зависимости от того, что именно вам нужно.

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