Improved install process removing SQL code from process.php file and creating one file per database type

This commit is contained in:
alvarenga.milton 2019-03-03 16:13:26 -03:00
parent dfed2269c9
commit 03ae41b78d
3 changed files with 121 additions and 124 deletions

View File

@ -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" );
}
}

View File

@ -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)
);

View File

@ -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
);