Встречается на собеседованиях • сегодня

Приходилось ли использовать кастомные миграции в Django

Да, приходилось. Кастомные миграции в Django нужны, когда стандартных makemigrations недостаточно — например, для сложных изменений данных, работы с сырыми SQL или нестандартными операциями.

Пример: миграция для переноса данных из одной модели в другую с преобразованием:

python
from django.db import migrations

def transfer_data(apps, schema_editor):
    OldModel = apps.get_model('myapp', 'OldModel')
    NewModel = apps.get_model('myapp', 'NewModel')
    for old_obj in OldModel.objects.all():
        NewModel.objects.create(
            new_field=old_obj.old_field.upper(),
            # ... другие поля
        )

class Migration(migrations.Migration):
dependencies = [('myapp', '0001_initial')]
operations = [
migrations.RunPython(transfer_data),
]

text

**Нюансы:**  
- Используй `apps.get_model()`, а не прямой импорт моделей, чтобы избежать проблем с историческими моделями.  
- Для отката (`reverse_code`) можно добавить вторую функцию.  
- При работе с большими данными используй `.iterator()` или батчинг, чтобы избежать `MemoryError`.  
- Для SQL-операций применяй `migrations.RunSQL`.  

Кастомные миграции — мощный инструмент, но требуют тестирования, особенно в продакшене.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы