diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-04-03 08:31:47 +0200 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-06-29 21:07:11 +0200 |
commit | 2faccaee0d22efa6b23586b65f222e8cc5404366 (patch) | |
tree | 3831ba76b2a53253d9a755bd68e9b33bf2763543 /lib | |
parent | e232907698cc1184136a14917548078e781a278a (diff) | |
download | nextcloud-server-2faccaee0d22efa6b23586b65f222e8cc5404366.tar.gz nextcloud-server-2faccaee0d22efa6b23586b65f222e8cc5404366.zip |
Change database creation to use array to select db setup class
Diffstat (limited to 'lib')
-rw-r--r-- | lib/setup.php | 36 | ||||
-rw-r--r-- | lib/setup/sqlite.php | 20 |
2 files changed, 31 insertions, 25 deletions
diff --git a/lib/setup.php b/lib/setup.php index 30975ae8ff6..e73ba6cdf4f 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -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 index 00000000000..b1785ce1b0b --- /dev/null +++ b/lib/setup/sqlite.php @@ -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'); + } +} |