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

Был ли опыт написания кастомных миграций в Django

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

Пример кастомной миграции (файл 0002_custom_migration.py):

python
from django.db import migrations

def forward_func(apps, schema_editor):
    # Получаем модель из исторических версий
    User = apps.get_model('auth', 'User')
    for user in User.objects.all():
        user.username = user.username.lower()
        user.save()

class Migration(migrations.Migration):
dependencies = [
('auth', '0001_initial'),
]

text
operations = [
    migrations.RunPython(
        forward_func,
        # Можно указать reverse_func для отката
        migrations.RunPython.noop
    ),
]
text

Ключевые моменты:
- Используем `apps.get_model()` вместо прямого импорта моделей
- Можно добавлять сырой SQL через `migrations.RunSQL`
- Важно предусмотреть откат (reverse_func)
- Для сложных миграций лучше разбивать на несколько этапов

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

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

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

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