2016-01-30 20:46:28 +00:00
|
|
|
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
|
|
|
|
),
|
2022-02-03 19:24:19 +00:00
|
|
|
),
|
2016-01-30 20:46:28 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
]
|