]> source.dussan.org Git - nextcloud-server.git/commitdiff
Change database creation to use array to select db setup class
authorBart Visscher <bartv@thisnet.nl>
Wed, 3 Apr 2013 06:31:47 +0000 (08:31 +0200)
committerBart Visscher <bartv@thisnet.nl>
Sat, 29 Jun 2013 19:07:11 +0000 (21:07 +0200)
lib/setup.php
lib/setup/sqlite.php [new file with mode: 0644]

index 30975ae8ff6c593505147d8e5e243243beeb3d93..e73ba6cdf4ff04c991b804ec61464218d8eab73d 100644 (file)
@@ -91,32 +91,18 @@ class OC_Setup {
                OC_Config::setValue('datadirectory', $datadir);
                OC_Config::setValue('dbtype', $dbtype);
                OC_Config::setValue('version', implode('.', OC_Util::getVersion()));
+               $db_setup_classes = array(
+                       'mysql' => '\OC\Setup\MySQL',
+                       'pgsql' => '\OC\Setup\PostgreSQL',
+                       'oci'   => '\OC\Setup\OCI',
+                       'mssql' => '\OC\Setup\MSSQL',
+                       'sqlite' => '\OC\Setup\Sqlite',
+                       'sqlite3' => '\OC\Setup\Sqlite',
+               );
                try {
-                       if ($dbtype == 'mysql') {
-                               $db_setup = new \OC\Setup\MySQL(self::getTrans(), $options);
-                               $db_setup->setupDatabase($username);
-                       }
-                       elseif($dbtype == 'pgsql') {
-                               $db_setup = new \OC\Setup\PostgreSQL(self::getTrans(), $options);
-                               $db_setup->setupDatabase($username);
-                       }
-                       elseif($dbtype == 'oci') {
-                               $db_setup = new \OC\Setup\OCI(self::getTrans(), $options);
-                               $db_setup->setupDatabase($username);
-                       }
-                       elseif ($dbtype == 'mssql') {
-                               $db_setup = new \OC\Setup\MSSQL(self::getTrans(), $options);
-                               $db_setup->setupDatabase($username);
-                       }
-                       else { // sqlite
-                               //delete the old sqlite database first, might cause infinte loops otherwise
-                               if(file_exists("$datadir/owncloud.db")) {
-                                       unlink("$datadir/owncloud.db");
-                               }
-                               //in case of sqlite, we can always fill the database
-                               error_log("creating sqlite db");
-                               OC_DB::createDbFromStructure('db_structure.xml');
-                       }
+                       $class = $db_setup_classes[$dbtype];
+                       $db_setup = new $class(self::getTrans(), $options);
+                       $db_setup->setupDatabase($username);
                } catch (DatabaseSetupException $e) {
                        $error[] = array(
                                'error' => $e->getMessage(),
diff --git a/lib/setup/sqlite.php b/lib/setup/sqlite.php
new file mode 100644 (file)
index 0000000..b1785ce
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+
+namespace OC\Setup;
+
+class Sqlite extends AbstractDatabase {
+       public function initialize($config) {
+       }
+
+       public function setupDatabase($username) {
+               $datadir = \OC_Config::getValue('datadirectory');
+
+               //delete the old sqlite database first, might cause infinte loops otherwise
+               if(file_exists("$datadir/owncloud.db")) {
+                       unlink("$datadir/owncloud.db");
+               }
+               //in case of sqlite, we can always fill the database
+               error_log("creating sqlite db");
+               \OC_DB::createDbFromStructure('db_structure.xml');
+       }
+}