Писал ли кастомные миграции
Python
Middle
Без компании
Писал ли кастомные миграции
Ответы
Да, писал кастомные миграции в Django. Они нужны, когда стандартных `makemigrations` недостаточно, например, для сложных изменений данных или работы с сырым SQL.
Пример миграции для перевода данных из одной модели в другую:
```
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(
field1=old_obj.field1,
field2=old_obj.field2,
)
class Migration(migrations.Migration):
dependencies = [('myapp', 'previous_migration')]
operations = [
migrations.RunPython(transfer_data),
]
```
Важно:
- Использовать `apps.get_model`, а не прямой импорт моделей.
- Учитывать откат миграции (`reverse_code` в `RunPython`).
- Тестировать миграции на копии базы перед применением.