diff --git a/lib/private/DB/Migrator.php b/lib/private/DB/Migrator.php index f62735ea6b..e50927f620 100644 --- a/lib/private/DB/Migrator.php +++ b/lib/private/DB/Migrator.php @@ -32,6 +32,7 @@ namespace OC\DB; use Doctrine\DBAL\Exception; +use Doctrine\DBAL\Platforms\MySQLPlatform; use Doctrine\DBAL\Schema\AbstractAsset; use Doctrine\DBAL\Schema\Comparator; use Doctrine\DBAL\Schema\Index; @@ -238,14 +239,18 @@ class Migrator { $schemaDiff = $this->getDiff($targetSchema, $connection); - $connection->beginTransaction(); + if (!$connection->getDatabasePlatform() instanceof MySQLPlatform) { + $connection->beginTransaction(); + } $sqls = $schemaDiff->toSql($connection->getDatabasePlatform()); $step = 0; foreach ($sqls as $sql) { $this->emit($sql, $step++, count($sqls)); $connection->query($sql); } - $connection->commit(); + if (!$connection->getDatabasePlatform() instanceof MySQLPlatform) { + $connection->commit(); + } } /**