summaryrefslogtreecommitdiff
path: root/tests/migrations/test_migrations_atomic_operation
diff options
context:
space:
mode:
authorPankrat <lhaehne@gmail.com>2016-01-30 21:46:28 +0100
committerTim Graham <timograham@gmail.com>2016-02-05 09:09:05 -0500
commitf91a04621ea8d7a657ff755645d823026257e898 (patch)
tree2b06f3ce1cbb8e5f04499838154cf715ff76ce5b /tests/migrations/test_migrations_atomic_operation
parent0edb8a146fd6c60f4c3b1ad0a4a89963962f22af (diff)
Fixed #25833 -- Added support for non-atomic migrations.
Added the Migration.atomic attribute which can be set to False for non-atomic migrations.
Diffstat (limited to 'tests/migrations/test_migrations_atomic_operation')
-rw-r--r--tests/migrations/test_migrations_atomic_operation/0001_initial.py25
-rw-r--r--tests/migrations/test_migrations_atomic_operation/__init__.py0
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/migrations/test_migrations_atomic_operation/0001_initial.py b/tests/migrations/test_migrations_atomic_operation/0001_initial.py
new file mode 100644
index 0000000000..11bd2f7ce2
--- /dev/null
+++ b/tests/migrations/test_migrations_atomic_operation/0001_initial.py
@@ -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),
+ ]
diff --git a/tests/migrations/test_migrations_atomic_operation/__init__.py b/tests/migrations/test_migrations_atomic_operation/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/migrations/test_migrations_atomic_operation/__init__.py