diff options
| author | Evan Grim <evan@mirgnave.com> | 2017-07-11 11:40:18 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-08-10 19:21:14 -0400 |
| commit | 7937cc16f5fafb33a53b9a9ff286229fcc5ba67f (patch) | |
| tree | 27f5226e663b8f69efea01ee54a533b9c0e7161e /django | |
| parent | 5893eaddf4c866c2cd3f53660a3ffaf4d9db5dfa (diff) | |
Fixed #28386 -- Made operations within non-atomic migrations honor the operation's atomic flag when migrating backwards.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/migrations/migration.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/django/db/migrations/migration.py b/django/db/migrations/migration.py index 3a41703ef8..ffe0b1fb3d 100644 --- a/django/db/migrations/migration.py +++ b/django/db/migrations/migration.py @@ -162,8 +162,10 @@ class Migration: schema_editor.collected_sql.append("--") if not operation.reduces_to_sql: continue - if not schema_editor.connection.features.can_rollback_ddl and operation.atomic: - # We're forcing a transaction on a non-transactional-DDL backend + atomic_operation = operation.atomic or (self.atomic and operation.atomic is not False) + if not schema_editor.atomic_migration and atomic_operation: + # Force a transaction on a non-transactional-DDL backend or an + # atomic operation inside a non-atomic migration. with atomic(schema_editor.connection.alias): operation.database_backwards(self.app_label, schema_editor, from_state, to_state) else: |
