Встречается на собеседованиях • сегодня
Приходилось ли использовать кастомные миграции в 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`.
Кастомные миграции — мощный инструмент, но требуют тестирования, особенно в продакшене.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы