diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-06-04 18:15:58 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-06-04 18:17:46 +0200 |
commit | d4ffafe4674dbda984c78ea9f7db894156e2a764 (patch) | |
tree | 80206d4c25c38092219ca74b4170893ade376e3f /lib | |
parent | 5b97369b00afbdf55eed145be9ac981dca06d2a9 (diff) | |
download | nextcloud-server-d4ffafe4674dbda984c78ea9f7db894156e2a764.tar.gz nextcloud-server-d4ffafe4674dbda984c78ea9f7db894156e2a764.zip |
Removed simulate db update flag and split into separate methods
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/db.php | 29 | ||||
-rw-r--r-- | lib/private/db/mdb2schemamanager.php | 37 | ||||
-rw-r--r-- | lib/private/updater.php | 4 |
3 files changed, 47 insertions, 23 deletions
diff --git a/lib/private/db.php b/lib/private/db.php index f6854e3e162..82affe293ed 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -307,21 +307,32 @@ class OC_DB { /** * update the database schema * @param string $file file to read structure from - * @param bool $simulate whether to simulate the upgrade on separate tables * @throws Exception * @return string|boolean */ - public static function updateDbFromStructure($file, $simulate = false) { + public static function updateDbFromStructure($file) { $schemaManager = self::getMDB2SchemaManager(); try { - $result = $schemaManager->updateDbFromStructure($file, false, $simulate); + $result = $schemaManager->updateDbFromStructure($file); } catch (Exception $e) { - if ($simulate) { - OC_Log::write('core', 'Database structure update simulation failed ('.$e.')', OC_Log::FATAL); - } - else { - OC_Log::write('core', 'Failed to update database structure ('.$e.')', OC_Log::FATAL); - } + OC_Log::write('core', 'Failed to update database structure ('.$e.')', OC_Log::FATAL); + throw $e; + } + return $result; + } + + /** + * simulate the database schema update + * @param string $file file to read structure from + * @throws Exception + * @return string|boolean + */ + public static function simulateUpdateDbFromStructure($file) { + $schemaManager = self::getMDB2SchemaManager(); + try { + $result = $schemaManager->simulateUpdateDbFromStructure($file); + } catch (Exception $e) { + OC_Log::write('core', 'Simulated database structure update failed ('.$e.')', OC_Log::FATAL); throw $e; } return $result; diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index 397aaf3608a..734ba18d1ac 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -74,33 +74,46 @@ class MDB2SchemaManager { } /** + * Reads database schema from file + * + * @param string $file file to read from + */ + private function readSchemaFromFile($file) { + $platform = $this->conn->getDatabasePlatform(); + $schemaReader = new MDB2SchemaReader(\OC_Config::getObject(), $platform); + return $schemaReader->loadSchemaFromFile($file); + } + + /** * update the database scheme * @param string $file file to read structure from * @param bool $generateSql only return the sql needed for the upgrade - * @param bool $simulate whether to simulate on separate tables instead of the real onces * @return string|boolean */ - public function updateDbFromStructure($file, $generateSql = false, $simulate = false) { - - $platform = $this->conn->getDatabasePlatform(); - $schemaReader = new MDB2SchemaReader(\OC_Config::getObject(), $platform); - $toSchema = $schemaReader->loadSchemaFromFile($file); + public function updateDbFromStructure($file, $generateSql = false) { + $toSchema = $this->readSchemaFromFile($file); $migrator = $this->getMigrator(); if ($generateSql) { return $migrator->generateChangeScript($toSchema); } else { - if ($simulate) { - $migrator->checkMigrate($toSchema); - } - else { - $migrator->migrate($toSchema); - } + $migrator->migrate($toSchema); return true; } } /** + * update the database scheme + * @param string $file file to read structure from + * @return string|boolean + */ + public function simulateUpdateDbFromStructure($file) { + $toSchema = $this->readSchemaFromFile($file); + $migrator = $this->getMigrator()->checkMigrate($toSchema); + return true; + } + + /** * @param \Doctrine\DBAL\Schema\Schema $schema * @return string */ diff --git a/lib/private/updater.php b/lib/private/updater.php index 1c363123e10..106970c4121 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -130,7 +130,7 @@ class Updater extends BasicEmitter { // simulate DB upgrade try { // simulate core DB upgrade - \OC_DB::updateDbFromStructure(\OC::$SERVERROOT . '/db_structure.xml', true); + \OC_DB::simulateUpdateDbFromStructure(\OC::$SERVERROOT . '/db_structure.xml'); // simulate apps DB upgrade $version = \OC_Util::getVersion(); @@ -139,7 +139,7 @@ class Updater extends BasicEmitter { $info = \OC_App::getAppInfo($appId); if (\OC_App::isAppCompatible($version, $info) && \OC_App::shouldUpgrade($appId)) { if (file_exists(\OC_App::getAppPath($appId) . '/appinfo/database.xml')) { - \OC_DB::updateDbFromStructure(\OC_App::getAppPath($appId) . '/appinfo/database.xml', true); + \OC_DB::simulateUpdateDbFromStructure(\OC_App::getAppPath($appId) . '/appinfo/database.xml'); } } } |