diff options
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: |
