Создайте новое поле int в модели Django из существующих полей bool
У меня есть модель с несколькими полями bool. Я хотел бы заменить их одним полем int, где каждый бит представляет один из старых bool. Я добавил новое поле int и запустил makemigrations. Есть ли способ изменить файл миграций и определить, как я хочу, чтобы были определены значения новых полей int? Как я уже сказал, я бы хотел, чтобы они принимали значения предыдущих bool-полей
Миграция данных - это то, что вам нужно.
- Добавьте новое поле в модель, примените
makemigrations. - Создайте миграцию данных, которая перенесет данные из старых полей в новые, и запустите ее.
- Удалите старые поля.
Миграция данных может быть создана с помощью:
python manage.py makemigrations --empty yourappname
Внутри него вы должны использовать RunPython или RunSQL в зависимости от того, что именно вам нужно.