From 01aedbe506a1a7a861a0b4342ce01db23986da12 Mon Sep 17 00:00:00 2001
From: Victor Dubiniuk <victor.dubiniuk@gmail.com>
Date: Fri, 18 Mar 2016 17:41:00 +0300
Subject: [PATCH] Speedup schema cloning for MySQL

---
 lib/private/DB/MySQLMigrator.php | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/lib/private/DB/MySQLMigrator.php b/lib/private/DB/MySQLMigrator.php
index 1b3f70a817d..7e1194865f8 100644
--- a/lib/private/DB/MySQLMigrator.php
+++ b/lib/private/DB/MySQLMigrator.php
@@ -24,6 +24,7 @@
 namespace OC\DB;
 
 use Doctrine\DBAL\Schema\Schema;
+use Doctrine\DBAL\Schema\Table;
 
 class MySQLMigrator extends Migrator {
 	/**
@@ -48,4 +49,26 @@ class MySQLMigrator extends Migrator {
 
 		return $schemaDiff;
 	}
+	
+        /**
+         * Speed up migration test by disabling autocommit and unique indexes check
+         *
+         * @param \Doctrine\DBAL\Schema\Table $table
+         * @throws \OC\DB\MigrationException
+         */
+        protected function checkTableMigrate(Table $table) {
+                $this->connection->exec('SET autocommit=0');
+                $this->connection->exec('SET unique_checks=0');
+
+                try {
+                        parent::checkTableMigrate($table);
+                } catch (\Exception $e) {
+                        $this->connection->exec('SET unique_checks=1');
+                        $this->connection->exec('SET autocommit=1');
+                        throw new MigrationException($table->getName(), $e->getMessage());
+                }
+                $this->connection->exec('SET unique_checks=1');
+                $this->connection->exec('SET autocommit=1');
+        }
+
 }
-- 
GitLab