diff --git a/components/install/process.php b/components/install/process.php index 7777822..5cccdbd 100755 --- a/components/install/process.php +++ b/components/install/process.php @@ -98,11 +98,12 @@ if ( ! ( defined( "DBHOST" ) && defined( "DBNAME" ) && defined( "DBUSER" ) && de $aValidDBType = [ 'mysql' ,'postgresql' + //,'sqlite' ]; //Is selected database type valid? if(!in_array($dbtype,$aValidDBType)){ - die( "Invalid database. Please select one of ".implode(", "$aValidDBType)."." ); + die( "Invalid database. Please select one of ".implode(", ",$aValidDBType)."." ); } try { @@ -115,130 +116,16 @@ if ( ! ( defined( "DBHOST" ) && defined( "DBNAME" ) && defined( "DBUSER" ) && de } $bind_vars = array(); $bind = ""; - $sql = []; - $sql['mysql'] = " - --- --- Table structure for table options --- - -CREATE TABLE IF NOT EXISTS options ( - id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - name varchar(255) NOT NULL, - value text NOT NULL, - CONSTRAINT option_name UNIQUE (name) -); - --- -------------------------------------------------------- - --- --- Table structure for table projects --- - -CREATE TABLE IF NOT EXISTS projects ( - id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - name varchar(255) NOT NULL, - path varchar(255) NOT NULL, - owner varchar(255) NOT NULL, - access text, - CONSTRAINT project UNIQUE (path, owner) -); - --- -------------------------------------------------------- - --- --- Table structure for table users --- - -CREATE TABLE IF NOT EXISTS users ( - id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - first_name varchar(255) DEFAULT NULL, - last_name varchar(255) DEFAULT NULL, - username varchar(255) NOT NULL, - password text NOT NULL, - email varchar(255) DEFAULT NULL, - project varchar(255) DEFAULT NULL, - access varchar(255) NOT NULL, - groups text, - token text, - CONSTRAINT username UNIQUE (username) -); - --- --- Table structure for table user_options --- - -CREATE TABLE IF NOT EXISTS user_options ( - id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - name varchar(255) NOT NULL, - username varchar(255) NOT NULL, - value text NOT NULL, - CONSTRAINT option_name UNIQUE (name,username) -); - -"; - - $sql['postgresql'] = " - --- --- Table structure for table options --- - -CREATE TABLE IF NOT EXISTS options ( - id SERIAL PRIMARY KEY, - name varchar(255) NOT NULL UNIQUE, - value TEXT NOT NULL -); - --- -------------------------------------------------------- - --- --- Table structure for table projects --- - -CREATE TABLE IF NOT EXISTS projects ( - id SERIAL PRIMARY KEY, - name varchar(255) NOT NULL, - path varchar(255) NOT NULL UNIQUE, - owner varchar(255) NOT NULL UNIQUE, - access text -); - --- -------------------------------------------------------- - --- --- Table structure for table users --- - -CREATE TABLE IF NOT EXISTS users ( - id SERIAL PRIMARY KEY, - first_name varchar(255) DEFAULT NULL, - last_name varchar(255) DEFAULT NULL, - username varchar(255) NOT NULL UNIQUE, - password text NOT NULL, - email varchar(255) DEFAULT NULL, - project varchar(255) DEFAULT NULL, - access varchar(255) NOT NULL, - groups text, - token text -); - --- --- Table structure for table user_options --- - -CREATE TABLE IF NOT EXISTS user_options ( - id SERIAL PRIMARY KEY, - name varchar(255) NOT NULL UNIQUE, - username varchar(255) NOT NULL UNIQUE, - value text NOT NULL -); - -"; + $database_sql_fullpath = $path.'/components/install/sql/'.$dbtype.".sql"; + if(!is_file($database_sql_fullpath)){ + die("Could not find the sql of the database ".$dbtype." to execute"); + } + $sql = file_get_contents($database_sql_fullpath); + try { - - $result = $connection->exec($sql[$dbtype]); + //Create the database + $result = $connection->exec($sql); } catch( PDOException $e ) { die($e->getMessage()); @@ -405,4 +292,4 @@ define("WSURL", BASE_URL . "/workspace"); saveFile( $config, $config_data ); echo( "success" ); -} \ No newline at end of file +} diff --git a/components/install/sql/mysql.sql b/components/install/sql/mysql.sql new file mode 100644 index 0000000..332b413 --- /dev/null +++ b/components/install/sql/mysql.sql @@ -0,0 +1,57 @@ +-- +-- Table structure for table options +-- + +CREATE TABLE IF NOT EXISTS options ( + id int NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + value text NOT NULL, + CONSTRAINT option_name UNIQUE (name) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table projects +-- + +CREATE TABLE IF NOT EXISTS projects ( + id int NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + path varchar(255) NOT NULL, + owner varchar(255) NOT NULL, + access text, + CONSTRAINT project UNIQUE (path, owner) +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table users +-- + +CREATE TABLE IF NOT EXISTS users ( + id int NOT NULL AUTO_INCREMENT PRIMARY KEY, + first_name varchar(255) DEFAULT NULL, + last_name varchar(255) DEFAULT NULL, + username varchar(255) NOT NULL, + password text NOT NULL, + email varchar(255) DEFAULT NULL, + project varchar(255) DEFAULT NULL, + access varchar(255) NOT NULL, + groups text, + token text, + CONSTRAINT username UNIQUE (username) +); + +-- +-- Table structure for table user_options +-- + +CREATE TABLE IF NOT EXISTS user_options ( + id int NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + username varchar(255) NOT NULL, + value text NOT NULL, + CONSTRAINT option_name UNIQUE (name,username) +); diff --git a/components/install/sql/postgresql.sql b/components/install/sql/postgresql.sql new file mode 100644 index 0000000..3147dde --- /dev/null +++ b/components/install/sql/postgresql.sql @@ -0,0 +1,53 @@ +-- +-- Table structure for table options +-- + +CREATE TABLE IF NOT EXISTS options ( + id SERIAL PRIMARY KEY, + name varchar(255) NOT NULL UNIQUE, + value TEXT NOT NULL +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table projects +-- + +CREATE TABLE IF NOT EXISTS projects ( + id SERIAL PRIMARY KEY, + name varchar(255) NOT NULL, + path varchar(255) NOT NULL UNIQUE, + owner varchar(255) NOT NULL UNIQUE, + access text +); + +-- -------------------------------------------------------- + +-- +-- Table structure for table users +-- + +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + first_name varchar(255) DEFAULT NULL, + last_name varchar(255) DEFAULT NULL, + username varchar(255) NOT NULL UNIQUE, + password text NOT NULL, + email varchar(255) DEFAULT NULL, + project varchar(255) DEFAULT NULL, + access varchar(255) NOT NULL, + groups text, + token text +); + +-- +-- Table structure for table user_options +-- + +CREATE TABLE IF NOT EXISTS user_options ( + id SERIAL PRIMARY KEY, + name varchar(255) NOT NULL UNIQUE, + username varchar(255) NOT NULL UNIQUE, + value text NOT NULL +);