mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +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:
parent
0edb8a146f
commit
f91a04621e
14 changed files with 181 additions and 16 deletions
|
@ -100,6 +100,33 @@ class ExecutorTests(MigrationTestBase):
|
|||
self.assertTableNotExists("migrations_author")
|
||||
self.assertTableNotExists("migrations_book")
|
||||
|
||||
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_non_atomic"})
|
||||
def test_non_atomic_migration(self):
|
||||
"""
|
||||
Applying a non-atomic migration works as expected.
|
||||
"""
|
||||
executor = MigrationExecutor(connection)
|
||||
with self.assertRaisesMessage(RuntimeError, "Abort migration"):
|
||||
executor.migrate([("migrations", "0001_initial")])
|
||||
self.assertTableExists("migrations_publisher")
|
||||
migrations_apps = executor.loader.project_state(("migrations", "0001_initial")).apps
|
||||
Publisher = migrations_apps.get_model("migrations", "Publisher")
|
||||
self.assertTrue(Publisher.objects.exists())
|
||||
self.assertTableNotExists("migrations_book")
|
||||
|
||||
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_atomic_operation"})
|
||||
def test_atomic_operation_in_non_atomic_migration(self):
|
||||
"""
|
||||
An atomic operation is properly rolled back inside a non-atomic
|
||||
migration.
|
||||
"""
|
||||
executor = MigrationExecutor(connection)
|
||||
with self.assertRaisesMessage(RuntimeError, "Abort migration"):
|
||||
executor.migrate([("migrations", "0001_initial")])
|
||||
migrations_apps = executor.loader.project_state(("migrations", "0001_initial")).apps
|
||||
Editor = migrations_apps.get_model("migrations", "Editor")
|
||||
self.assertFalse(Editor.objects.exists())
|
||||
|
||||
@override_settings(MIGRATION_MODULES={
|
||||
"migrations": "migrations.test_migrations",
|
||||
"migrations2": "migrations2.test_migrations_2",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue