mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #25833 -- Added support for non-atomic migrations.
Added the Migration.atomic attribute which can be set to False for non-atomic migrations.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
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, atomic=True),
|
||||
]
|
||||
Reference in New Issue
Block a user