mirror of
				https://github.com/django/django.git
				synced 2025-10-28 16:16:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			990 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			990 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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
 | |
|                     ),
 | |
|                 ),
 | |
|             ],
 | |
|         ),
 | |
|     ]
 |