]> source.dussan.org Git - nextcloud-server.git/commitdiff
Rename \OC\DB\Schema to \OC\DB\MDB2SchemaManager
authorBart Visscher <bartv@thisnet.nl>
Fri, 2 Aug 2013 11:19:27 +0000 (13:19 +0200)
committerBart Visscher <bartv@thisnet.nl>
Fri, 2 Aug 2013 11:19:27 +0000 (13:19 +0200)
lib/db.php
lib/db/mdb2schemamanager.php [new file with mode: 0644]
lib/db/schema.php [deleted file]

index a618e8ebb94f7642dac3784e58e636eb94f0adb0..b92f7820f317859655897aad39bcad972ec290c1 100644 (file)
@@ -397,7 +397,7 @@ class OC_DB {
         */
        public static function getDbStructure( $file, $mode=MDB2_SCHEMA_DUMP_STRUCTURE) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                return $schema->getDbStructure($file);
        }
 
@@ -410,7 +410,7 @@ class OC_DB {
         */
        public static function createDbFromStructure( $file ) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                $result = $schema->createDbFromStructure($file);
                return $result;
        }
@@ -423,7 +423,7 @@ class OC_DB {
         */
        public static function updateDbFromStructure($file) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                try {
                        $result = $schema->updateDbFromStructure($file);
                } catch (Exception $e) {
@@ -605,7 +605,7 @@ class OC_DB {
         */
        public static function dropTable($tableName) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                $schema->dropTable($tableName);
        }
 
@@ -615,7 +615,7 @@ class OC_DB {
         */
        public static function removeDBStructure($file) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                $schema->removeDBStructure($file);
        }
 
@@ -625,7 +625,7 @@ class OC_DB {
         */
        public static function replaceDB( $file ) {
                self::connectDoctrine();
-               $schema = new \OC\DB\Schema(self::$connection);
+               $schema = new \OC\DB\MDB2SchemaManager(self::$connection);
                $schema->replaceDB($file);
        }
 
diff --git a/lib/db/mdb2schemamanager.php b/lib/db/mdb2schemamanager.php
new file mode 100644 (file)
index 0000000..2f828be
--- /dev/null
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\DB;
+
+class MDB2SchemaManager {
+       /**
+        * @var \Doctrine\DBAL\Connection $conn
+        */
+       protected $conn;
+
+       public function __construct(Connection $conn) {
+               $this->conn = $conn;
+       }
+
+       /**
+        * @brief saves database scheme to xml file
+        * @param string $file name of file
+        * @param int|string $mode
+        * @return bool
+        *
+        * TODO: write more documentation
+        */
+       public function getDbStructure( $file, $mode=MDB2_SCHEMA_DUMP_STRUCTURE) {
+               $sm = $this->conn->getSchemaManager();
+
+               return \OC_DB_MDB2SchemaWriter::saveSchemaToFile($file, $sm);
+       }
+
+       /**
+        * @brief Creates tables from XML file
+        * @param string $file file to read structure from
+        * @return bool
+        *
+        * TODO: write more documentation
+        */
+       public function createDbFromStructure( $file ) {
+               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
+               $toSchema = $schemaReader->loadSchemaFromFile($file);
+               return $this->executeSchemaChange($toSchema);
+       }
+
+       /**
+        * @brief update the database scheme
+        * @param string $file file to read structure from
+        * @return bool
+        */
+       public function updateDbFromStructure($file) {
+               $sm = $this->conn->getSchemaManager();
+               $fromSchema = $sm->createSchema();
+
+               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
+               $toSchema = $schemaReader->loadSchemaFromFile($file);
+
+               // remove tables we don't know about
+               foreach($fromSchema->getTables() as $table) {
+                       if (!$toSchema->hasTable($table->getName())) {
+                               $fromSchema->dropTable($table->getName());
+                       }
+               }
+               // remove sequences we don't know about
+               foreach($fromSchema->getSequences() as $table) {
+                       if (!$toSchema->hasSequence($table->getName())) {
+                               $fromSchema->dropSequence($table->getName());
+                       }
+               }
+
+               $comparator = new \Doctrine\DBAL\Schema\Comparator();
+               $schemaDiff = $comparator->compare($fromSchema, $toSchema);
+
+               $platform = $this->conn->getDatabasePlatform();
+               $tables = $schemaDiff->newTables + $schemaDiff->changedTables + $schemaDiff->removedTables;
+               foreach($tables as $tableDiff) {
+                       $tableDiff->name = $platform->quoteIdentifier($tableDiff->name);
+               }
+
+               return $this->executeSchemaChange($schemaDiff);
+       }
+
+       /**
+        * @brief drop a table
+        * @param string $tableName the table to drop
+        */
+       public function dropTable($tableName) {
+               $sm = $this->conn->getSchemaManager();
+               $fromSchema = $sm->createSchema();
+               $toSchema = clone $fromSchema;
+               $toSchema->dropTable($tableName);
+               $sql = $fromSchema->getMigrateToSql($toSchema, $this->conn->getDatabasePlatform());
+               $this->conn->execute($sql);
+       }
+
+       /**
+        * remove all tables defined in a database structure xml file
+        * @param string $file the xml file describing the tables
+        */
+       public function removeDBStructure($file) {
+               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
+               $fromSchema = $schemaReader->loadSchemaFromFile($file);
+               $toSchema = clone $fromSchema;
+               foreach($toSchema->getTables() as $table) {
+                       $toSchema->dropTable($table->getName());
+               }
+               $comparator = new \Doctrine\DBAL\Schema\Comparator();
+               $schemaDiff = $comparator->compare($fromSchema, $toSchema);
+               $this->executeSchemaChange($schemaDiff);
+       }
+
+       /**
+        * @brief replaces the ownCloud tables with a new set
+        * @param $file string path to the MDB2 xml db export file
+        */
+       public function replaceDB( $file ) {
+               $apps = \OC_App::getAllApps();
+               $this->conn->beginTransaction();
+               // Delete the old tables
+               $this->removeDBStructure( OC::$SERVERROOT . '/db_structure.xml' );
+
+               foreach($apps as $app) {
+                       $path = \OC_App::getAppPath($app).'/appinfo/database.xml';
+                       if(file_exists($path)) {
+                               $this->removeDBStructure( $path );
+                       }
+               }
+
+               // Create new tables
+               $this->conn->commit();
+       }
+
+       /**
+        * @param \Doctrine\DBAL\Schema\Schema $schema
+        * @return bool
+        */
+       private function executeSchemaChange($schema) {
+               $this->conn->beginTransaction();
+               foreach($schema->toSql($this->conn->getDatabasePlatform()) as $sql) {
+                       $this->conn->query($sql);
+               }
+               $this->conn->commit();
+               return true;
+       }
+}
diff --git a/lib/db/schema.php b/lib/db/schema.php
deleted file mode 100644 (file)
index b2dd982..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/**
- * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC\DB;
-
-class Schema {
-       /**
-        * @var \Doctrine\DBAL\Connection $conn
-        */
-       protected $conn;
-
-       public function __construct(Connection $conn) {
-               $this->conn = $conn;
-       }
-
-       /**
-        * @brief saves database scheme to xml file
-        * @param string $file name of file
-        * @param int|string $mode
-        * @return bool
-        *
-        * TODO: write more documentation
-        */
-       public function getDbStructure( $file, $mode=MDB2_SCHEMA_DUMP_STRUCTURE) {
-               $sm = $this->conn->getSchemaManager();
-
-               return \OC_DB_MDB2SchemaWriter::saveSchemaToFile($file, $sm);
-       }
-
-       /**
-        * @brief Creates tables from XML file
-        * @param string $file file to read structure from
-        * @return bool
-        *
-        * TODO: write more documentation
-        */
-       public function createDbFromStructure( $file ) {
-               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
-               $toSchema = $schemaReader->loadSchemaFromFile($file);
-               return $this->executeSchemaChange($toSchema);
-       }
-
-       /**
-        * @brief update the database scheme
-        * @param string $file file to read structure from
-        * @return bool
-        */
-       public function updateDbFromStructure($file) {
-               $sm = $this->conn->getSchemaManager();
-               $fromSchema = $sm->createSchema();
-
-               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
-               $toSchema = $schemaReader->loadSchemaFromFile($file);
-
-               // remove tables we don't know about
-               foreach($fromSchema->getTables() as $table) {
-                       if (!$toSchema->hasTable($table->getName())) {
-                               $fromSchema->dropTable($table->getName());
-                       }
-               }
-               // remove sequences we don't know about
-               foreach($fromSchema->getSequences() as $table) {
-                       if (!$toSchema->hasSequence($table->getName())) {
-                               $fromSchema->dropSequence($table->getName());
-                       }
-               }
-
-               $comparator = new \Doctrine\DBAL\Schema\Comparator();
-               $schemaDiff = $comparator->compare($fromSchema, $toSchema);
-
-               $platform = $this->conn->getDatabasePlatform();
-               $tables = $schemaDiff->newTables + $schemaDiff->changedTables + $schemaDiff->removedTables;
-               foreach($tables as $tableDiff) {
-                       $tableDiff->name = $platform->quoteIdentifier($tableDiff->name);
-               }
-
-               return $this->executeSchemaChange($schemaDiff);
-       }
-
-       /**
-        * @brief drop a table
-        * @param string $tableName the table to drop
-        */
-       public function dropTable($tableName) {
-               $sm = $this->conn->getSchemaManager();
-               $fromSchema = $sm->createSchema();
-               $toSchema = clone $fromSchema;
-               $toSchema->dropTable($tableName);
-               $sql = $fromSchema->getMigrateToSql($toSchema, $this->conn->getDatabasePlatform());
-               $this->conn->execute($sql);
-       }
-
-       /**
-        * remove all tables defined in a database structure xml file
-        * @param string $file the xml file describing the tables
-        */
-       public function removeDBStructure($file) {
-               $schemaReader = new \OC\DB\MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
-               $fromSchema = $schemaReader->loadSchemaFromFile($file);
-               $toSchema = clone $fromSchema;
-               foreach($toSchema->getTables() as $table) {
-                       $toSchema->dropTable($table->getName());
-               }
-               $comparator = new \Doctrine\DBAL\Schema\Comparator();
-               $schemaDiff = $comparator->compare($fromSchema, $toSchema);
-               $this->executeSchemaChange($schemaDiff);
-       }
-
-       /**
-        * @brief replaces the ownCloud tables with a new set
-        * @param $file string path to the MDB2 xml db export file
-        */
-       public function replaceDB( $file ) {
-               $apps = \OC_App::getAllApps();
-               $this->conn->beginTransaction();
-               // Delete the old tables
-               $this->removeDBStructure( OC::$SERVERROOT . '/db_structure.xml' );
-
-               foreach($apps as $app) {
-                       $path = \OC_App::getAppPath($app).'/appinfo/database.xml';
-                       if(file_exists($path)) {
-                               $this->removeDBStructure( $path );
-                       }
-               }
-
-               // Create new tables
-               $this->conn->commit();
-       }
-
-       /**
-        * @param \Doctrine\DBAL\Schema\Schema $schema
-        * @return bool
-        */
-       private function executeSchemaChange($schema) {
-               $this->conn->beginTransaction();
-               foreach($schema->toSql($this->conn->getDatabasePlatform()) as $sql) {
-                       $this->conn->query($sql);
-               }
-               $this->conn->commit();
-               return true;
-       }
-}