Писал ли кастомные миграции в Django

Python Junior Без компании
Писал ли кастомные миграции в Django
Ответы
Да, писал. Кастомные миграции в Django нужны, когда стандартного `makemigrations` недостаточно — например, для сложных преобразований данных, работы с сырым SQL или нестандартных операций с БД. **Пример:** ``` from django.db import migrations def forwards_func(apps, schema_editor): # Получаем модель из исторических версий User = apps.get_model('auth', 'User') # Массовое обновление записей User.objects.filter(is_staff=False).update(is_active=False) class Migration(migrations.Migration): dependencies = [('auth', 'XXXX_previous_migration')] operations = [ migrations.RunPython(forwards_func, migrations.RunPython.noop) ] ``` **Нюансы:** - Используй `apps.get_model()`, а не прямой импорт моделей. - Для отката (`reverse`) либо реализуй функцию, либо используй `noop`. - В `RunSQL` можно выполнять сырые запросы, но осторожно с кросс-БД совместимостью. - Тестируй миграции на копии базы перед применением в продакшене.