В какой ситуации нужна кастомная миграция
Python
Junior
Без компании
В какой ситуации нужна кастомная миграция
Ответы
Кастомные миграции в Django нужны, когда стандартных операций `makemigrations` недостаточно. Например:
- **Сложные изменения данных** – массовые обновления, преобразования данных между полями.
- **Работа с внешними API** – миграция, которая загружает/синхронизирует данные из внешнего источника.
- **Оптимизация** – создание индексов, партиций для больших таблиц.
- **Кастомные SQL-запросы** – когда нужен специфический SQL, который ORM не генерирует.
Пример:
```
from django.db import migrations
def fill_legacy_data(apps, schema_editor):
User = apps.get_model('auth', 'User')
for user in User.objects.filter(date_joined__year=2020):
user.profile.legacy_flag = True
user.profile.save()
class Migration(migrations.Migration):
dependencies = [('users', '0001_initial')]
operations = [
migrations.RunPython(fill_legacy_data),
]
```