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

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