Sobes.tech
Junior — Middle

Criaste tu próprio migrações para gerenciar o banco de dados no Django?

sobes.tech IA

Resposta da IA

No Django, as migrações são criadas automaticamente usando o comando makemigrations, que gera ficheiros de migração com base nas alterações nos modelos. No entanto, também é possível criar migrações personalizadas manualmente, se for necessário realizar operações não padrão na base de dados, como modificar dados, adicionar índices ou executar consultas SQL.

Exemplo de criação de uma migração personalizada:

from django.db import migrations, models

def custom_operation(apps, schema_editor):
    MyModel = apps.get_model('myapp', 'MyModel')
    for obj in MyModel.objects.all():
        obj.field = 'novo valor'
        obj.save()

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

    operations = [
        migrations.RunPython(custom_operation),
    ]

Assim, as migrações personalizadas permitem realizar ações arbitrárias na base de dados, que vão além da criação automática de tabelas e campos.