Commit 9bf890f6 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

[1.7.x] Wrapped migrations in a transaction only on DBs with transactional DDL.

Backport of e74d2183 from master
parent 0424c84d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -71,14 +71,16 @@ class BaseDatabaseSchemaEditor(object):

    def __enter__(self):
        self.deferred_sql = []
        atomic(self.connection.alias, self.connection.features.can_rollback_ddl).__enter__()
        if self.connection.features.can_rollback_ddl:
            atomic(self.connection.alias).__enter__()
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        if exc_type is None:
            for sql in self.deferred_sql:
                self.execute(sql)
        atomic(self.connection.alias, self.connection.features.can_rollback_ddl).__exit__(exc_type, exc_value, traceback)
        if self.connection.features.can_rollback_ddl:
            atomic(self.connection.alias).__exit__(exc_type, exc_value, traceback)

    # Core utility functions