from django.db import migrations, models def raise_error(apps, schema_editor): # Test atomic operation in non-atomic migration is wrapped in transaction Editor = apps.get_model("migrations", "Editor") Editor.objects.create(name="Test Editor") raise RuntimeError("Abort migration") class Migration(migrations.Migration): atomic = False operations = [ migrations.CreateModel( "Editor", [ ("name", models.CharField(primary_key=True, max_length=255)), ], ), migrations.RunPython(raise_error, reverse_code=raise_error, atomic=True), ]