diff options
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/db.php | 10 | ||||
-rw-r--r-- | lib/private/db/mdb2schemamanager.php | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/private/db.php b/lib/private/db.php index 6aaf31a30cd..221a369cad2 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -106,6 +106,16 @@ class OC_DB { } /** + * The existing database connection is closed and connected again + */ + public static function reconnect() { + if(self::$connection) { + self::$connection->close(); + self::$connection->connect(); + } + } + + /** * @return \OC\DB\Connection */ static public function getConnection() { diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index a6d9e30cf80..d3e379c9417 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -24,8 +24,6 @@ class MDB2SchemaManager { */ public function __construct($conn) { $this->conn = $conn; - $this->conn->close(); - $this->conn->connect(); } /** @@ -150,6 +148,10 @@ class MDB2SchemaManager { $this->conn->query($sql); } $this->conn->commit(); + + if ($this->conn->getDatabasePlatform() instanceof SqlitePlatform) { + \OC_DB::reconnect(); + } return true; } } |