diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-12-08 14:35:57 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-12-09 17:26:53 +0100 |
commit | 8af3991d0cf129316b177731686af547fe39a698 (patch) | |
tree | ad2199f8170ff6091b063eef45d5eefe40f8be30 /lib | |
parent | 26861a98c59c39901b9127831b7edf0c0a3eff40 (diff) | |
download | nextcloud-server-8af3991d0cf129316b177731686af547fe39a698.tar.gz nextcloud-server-8af3991d0cf129316b177731686af547fe39a698.zip |
Add dropTable to IDBConnection
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/db.php | 11 | ||||
-rw-r--r-- | lib/private/db/connection.php | 13 | ||||
-rw-r--r-- | lib/public/idbconnection.php | 7 |
3 files changed, 21 insertions, 10 deletions
diff --git a/lib/private/db.php b/lib/private/db.php index f8015133682..9387cc48457 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -263,16 +263,7 @@ class OC_DB { */ public static function dropTable($tableName) { $connection = \OC::$server->getDatabaseConnection(); - $tableName = OC_Config::getValue('dbtableprefix', 'oc_' ) . trim($tableName); - - $connection->beginTransaction(); - - $platform = $connection->getDatabasePlatform(); - $sql = $platform->getDropTableSQL($platform->quoteIdentifier($tableName)); - - $connection->executeQuery($sql); - - $connection->commit(); + $connection->dropTable($tableName); } /** diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php index a6cdf858899..e2d90c8fc82 100644 --- a/lib/private/db/connection.php +++ b/lib/private/db/connection.php @@ -164,6 +164,19 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection { return $msg; } + /** + * Drop a table from the database if it exists + * + * @param string $table table name without the prefix + */ + public function dropTable($table) { + $table = $this->tablePrefix . trim($table); + $schema = $this->getSchemaManager(); + if($schema->tablesExist(array($table))) { + $schema->dropTable($table); + } + } + // internal use /** * @param string $statement diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php index ce17d293e86..bc563d20b42 100644 --- a/lib/public/idbconnection.php +++ b/lib/public/idbconnection.php @@ -158,4 +158,11 @@ interface IDBConnection { * @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform. */ public function getDatabasePlatform(); + + /** + * Drop a table from the database if it exists + * + * @param string $table + */ + public function dropTable($table); } |