mirror of
https://github.com/django/django.git
synced 2024-12-28 12:06:22 +00:00
30 lines
885 B
Python
30 lines
885 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)),
|
||
|
],
|
||
|
),
|
||
|
]
|