# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models def raise_error(apps, schema_editor): # Test operation in non-atomic migration is not wrapped in transaction Publisher = apps.get_model('migrations', 'Publisher') Publisher.objects.create(name='Test Publisher') raise RuntimeError('Abort migration') class Migration(migrations.Migration): atomic = False operations = [ migrations.CreateModel( "Publisher", [ ("name", models.CharField(primary_key=True, max_length=255)), ], ), migrations.RunPython(raise_error), migrations.CreateModel( "Book", [ ("title", models.CharField(primary_key=True, max_length=255)), ("publisher", models.ForeignKey("migrations.Publisher", models.SET_NULL, null=True)), ], ), ]