diff --git a/lib/private/DB/Migrator.php b/lib/private/DB/Migrator.php
index f62735ea6b2cfa099e10ab6629b2afd87f8cbc70..e50927f620bf162f3851c81ed98f7bd004726c59 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();
+		}
 	}
 
 	/**
diff --git a/tests/lib/DB/MigratorTest.php b/tests/lib/DB/MigratorTest.php
index 539eb404bbf3307969ffc7c633a88b64d635ad23..6f3ebbb2b0c3c2e2478bc8890b8921470dd115dd 100644
--- a/tests/lib/DB/MigratorTest.php
+++ b/tests/lib/DB/MigratorTest.php
@@ -10,7 +10,9 @@
 namespace Test\DB;
 
 use Doctrine\DBAL\Exception;
+use Doctrine\DBAL\Platforms\MySQLPlatform;
 use Doctrine\DBAL\Platforms\OraclePlatform;
+use Doctrine\DBAL\Platforms\SqlitePlatform;
 use Doctrine\DBAL\Schema\Schema;
 use Doctrine\DBAL\Schema\SchemaConfig;
 use OC\DB\SchemaWrapper;
@@ -122,7 +124,11 @@ class MigratorTest extends \Test\TestCase {
 	}
 
 	private function isSQLite() {
-		return $this->connection->getDriver() instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver;
+		return $this->connection->getDatabasePlatform() instanceof SqlitePlatform;
+	}
+
+	private function isMySQL() {
+		return $this->connection->getDatabasePlatform() instanceof MySQLPlatform;
 	}
 
 
@@ -143,7 +149,9 @@ class MigratorTest extends \Test\TestCase {
 		try {
 			$migrator->migrate($endSchema);
 		} catch (Exception\UniqueConstraintViolationException $e) {
-			$this->connection->rollBack();
+			if (!$this->isMySQL()) {
+				$this->connection->rollBack();
+			}
 			throw $e;
 		}
 	}