mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-30 17:25:26 +02:00
Removed oracle and postgre support on installation. Ticket #457
This commit is contained in:
parent
7f0359283d
commit
a46d4502e6
@ -71,7 +71,7 @@
|
|||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = 'NG_BETA';
|
$version = 'NG_BETA';
|
||||||
$build = '170306';
|
$build = '170303';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
@ -258,160 +258,6 @@ function parse_mysqli_dump($connection, $url) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parse_postgresql_dump($connection, $url, $debug = false) {
|
|
||||||
if (file_exists($url)) {
|
|
||||||
$file_content = file($url);
|
|
||||||
|
|
||||||
$query = "";
|
|
||||||
|
|
||||||
foreach ($file_content as $sql_line) {
|
|
||||||
$clean_line = trim($sql_line);
|
|
||||||
$comment = preg_match("/^(\s|\t)*--.*$/", $clean_line);
|
|
||||||
if ($comment) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($clean_line)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query .= $clean_line;
|
|
||||||
|
|
||||||
//Check if the end of query with the the semicolon and any returns in the end of line
|
|
||||||
if(preg_match("/;[\040]*\$/", $clean_line)) {
|
|
||||||
//And execute and clean buffer
|
|
||||||
pg_send_query($connection, $query);
|
|
||||||
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
if ($debug) {
|
|
||||||
var_dump($query);
|
|
||||||
var_dump(pg_result_error($result));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pg_result_status($result) == PGSQL_FATAL_ERROR) {
|
|
||||||
echo pg_result_error($result);
|
|
||||||
echo "<i><br>$query<br></i>";
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parse_oracle_dump($connection, $url, $debug = false) {
|
|
||||||
if (file_exists($url)) {
|
|
||||||
$file_content = file($url);
|
|
||||||
|
|
||||||
$query = "";
|
|
||||||
$plsql_block = false;
|
|
||||||
|
|
||||||
$datetime_tz_format = oci_parse($connection, 'alter session set NLS_TIMESTAMP_TZ_FORMAT =\'YYYY-MM-DD HH24:MI:SS\'');
|
|
||||||
$datetime_format = oci_parse($connection, 'alter session set NLS_TIMESTAMP_FORMAT =\'YYYY-MM-DD HH24:MI:SS\'');
|
|
||||||
$date_format = oci_parse($connection, 'alter session set NLS_DATE_FORMAT =\'YYYY-MM-DD HH24:MI:SS\'');
|
|
||||||
$decimal_separator = oci_parse($connection, 'alter session set NLS_NUMERIC_CHARACTERS =\',.\'');
|
|
||||||
|
|
||||||
oci_execute($datetime_tz_format);
|
|
||||||
oci_execute($datetime_format);
|
|
||||||
oci_execute($date_format);
|
|
||||||
oci_execute($decimal_separator);
|
|
||||||
|
|
||||||
oci_free_statement($datetime_tz_format);
|
|
||||||
oci_free_statement($datetime_format);
|
|
||||||
oci_free_statement($date_format);
|
|
||||||
oci_free_statement($decimal_separator);
|
|
||||||
|
|
||||||
foreach ($file_content as $sql_line) {
|
|
||||||
$clean_line = trim($sql_line);
|
|
||||||
$comment = preg_match("/^(\s|\t)*--.*$/", $clean_line);
|
|
||||||
if ($comment) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($clean_line)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Support for PL/SQL blocks
|
|
||||||
if (preg_match("/^BEGIN$/", $clean_line)) {
|
|
||||||
$query .= $clean_line . ' ';
|
|
||||||
$plsql_block = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$query .= $clean_line;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check query's end with a back slash and any returns in the end of line or if it's a PL/SQL block 'END;;' string
|
|
||||||
if ((preg_match("/;[\040]*\$/", $clean_line) && !$plsql_block) ||
|
|
||||||
(preg_match("/^END;;[\040]*\$/", $clean_line) && $plsql_block)) {
|
|
||||||
$plsql_block = false;
|
|
||||||
//Execute and clean buffer
|
|
||||||
|
|
||||||
//Delete the last semicolon from current query
|
|
||||||
$query = substr($query, 0, strlen($query) - 1);
|
|
||||||
$sql = oci_parse($connection, $query);
|
|
||||||
$result = oci_execute($sql);
|
|
||||||
|
|
||||||
if ($debug) {
|
|
||||||
var_dump($query);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$result) {
|
|
||||||
$e = oci_error($sql);
|
|
||||||
echo "<tr><td><div class='warn'>Errors creating schema:</div><div style=\"overflow:auto; height:50px;\" >";
|
|
||||||
echo htmlentities($e['message'], ENT_QUOTES);
|
|
||||||
echo "<i><br>$query<br></i>";
|
|
||||||
echo "</div></td></tr>";
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "";
|
|
||||||
oci_free_statement($sql);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function oracle_drop_all_objects ($connection) {
|
|
||||||
//Drop all objects of the current installation
|
|
||||||
$stmt = oci_parse($connection,
|
|
||||||
"BEGIN " .
|
|
||||||
"FOR cur_rec IN (SELECT object_name, object_type " .
|
|
||||||
"FROM user_objects " .
|
|
||||||
"WHERE object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE', 'SNAPSHOT', 'MATERIALIZED VIEW')) LOOP " .
|
|
||||||
"BEGIN " .
|
|
||||||
"IF cur_rec.object_type = 'TABLE' THEN " .
|
|
||||||
"EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' \"' || cur_rec.object_name || '\" CASCADE CONSTRAINTS'; " .
|
|
||||||
"ELSE " .
|
|
||||||
"EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' \"' || cur_rec.object_name || '\"'; " .
|
|
||||||
"END IF; " .
|
|
||||||
"EXCEPTION " .
|
|
||||||
"WHEN OTHERS THEN " .
|
|
||||||
"DBMS_OUTPUT.put_line('FAILED: DROP ' || cur_rec.object_type || ' \"' || cur_rec.object_name || '\"'); " .
|
|
||||||
"END; " .
|
|
||||||
"END LOOP; " .
|
|
||||||
"END; ");
|
|
||||||
|
|
||||||
$result = oci_execute($stmt);
|
|
||||||
oci_free_statement($stmt);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
function random_name ($size) {
|
function random_name ($size) {
|
||||||
$temp = "";
|
$temp = "";
|
||||||
for ($a=0;$a< $size;$a++)
|
for ($a=0;$a< $size;$a++)
|
||||||
@ -612,8 +458,6 @@ function install_step2() {
|
|||||||
echo "</td></tr>";
|
echo "</td></tr>";
|
||||||
check_extension("mysql", "PHP MySQL extension");
|
check_extension("mysql", "PHP MySQL extension");
|
||||||
check_extension("mysqli", "PHP MySQL(mysqli) extension");
|
check_extension("mysqli", "PHP MySQL(mysqli) extension");
|
||||||
check_extension("pgsql", "PHP PostgreSQL extension");
|
|
||||||
check_extension("oci8", "PHP Oracle extension");
|
|
||||||
echo "</table>";
|
echo "</table>";
|
||||||
|
|
||||||
if ($res > 0) {
|
if ($res > 0) {
|
||||||
@ -659,12 +503,6 @@ function install_step3() {
|
|||||||
if (extension_loaded("mysqli")) {
|
if (extension_loaded("mysqli")) {
|
||||||
$options .= "<option value='mysqli'>MySQL(mysqli)</option>";
|
$options .= "<option value='mysqli'>MySQL(mysqli)</option>";
|
||||||
}
|
}
|
||||||
if (extension_loaded("pgsql")) {
|
|
||||||
$options .= "<option value='pgsql'>PostgreSQL</option>";
|
|
||||||
}
|
|
||||||
if (extension_loaded("oci8")) {
|
|
||||||
$options .= "<option value='oracle'>Oracle</option>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$error = false;
|
$error = false;
|
||||||
if (empty($options)) {
|
if (empty($options)) {
|
||||||
@ -1034,289 +872,6 @@ function install_step4() {
|
|||||||
$everything_ok = 1;
|
$everything_ok = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'oracle':
|
|
||||||
$connection = oci_connect($dbuser, $dbpassword, '//' . $dbhost . '/' . $dbname);
|
|
||||||
if (!$connection) {
|
|
||||||
check_generic(0, "Connection with Database");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
check_generic(1, "Connection with Database");
|
|
||||||
|
|
||||||
// Drop all objects if needed
|
|
||||||
if ($dbdrop == 1) {
|
|
||||||
oracle_drop_all_objects($connection);
|
|
||||||
}
|
|
||||||
|
|
||||||
$step1 = parse_oracle_dump($connection, "pandoradb.oracle.sql");
|
|
||||||
|
|
||||||
check_generic($step1, "Creating schema");
|
|
||||||
|
|
||||||
if ($step1) {
|
|
||||||
$step2 = parse_oracle_dump($connection, "pandoradb.data.oracle.sql");
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step2, "Populating database");
|
|
||||||
|
|
||||||
if (PHP_OS == "FreeBSD")
|
|
||||||
{
|
|
||||||
$step_freebsd = adjust_paths_for_freebsd ($engine, $connection);
|
|
||||||
check_generic ($step_freebsd, "Adjusting paths in database for FreeBSD");
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "<tr><td><div class='warn'>Please, you will need to setup your Pandora FMS server, editing the </i>/etc/pandora/pandora_server.conf</i> file and set database password.</div></tr></td>";
|
|
||||||
|
|
||||||
if ($step2) {
|
|
||||||
$step3 = is_writable("include");
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step3, "Write permissions to save config file in './include'");
|
|
||||||
|
|
||||||
if ($step3) {
|
|
||||||
$cfgin = fopen ("include/config.inc.php","r");
|
|
||||||
$cfgout = fopen ($pandora_config,"w");
|
|
||||||
$config_contents = fread ($cfgin, filesize("include/config.inc.php"));
|
|
||||||
$dbtype = 'oracle';
|
|
||||||
$config_new = '<?php
|
|
||||||
// Begin of automatic config file
|
|
||||||
$config["dbtype"] = "' . $dbtype . '"; //DB type (mysql, postgresql, oracle)
|
|
||||||
$config["dbname"]="' . $dbname . '"; // Oracle DataBase name
|
|
||||||
$config["dbuser"]="' . $dbuser . '"; // DB User
|
|
||||||
$config["dbpass"]="' . $dbpassword . '"; // DB Password
|
|
||||||
$config["dbhost"]="' . $dbhost . '"; // DB Host
|
|
||||||
$config["homedir"]="' . $path . '"; // Config homedir
|
|
||||||
/*
|
|
||||||
----------Attention--------------------
|
|
||||||
Please note that in certain installations:
|
|
||||||
- reverse proxy.
|
|
||||||
- web server in other ports.
|
|
||||||
- https
|
|
||||||
|
|
||||||
This variable might be dynamically altered.
|
|
||||||
|
|
||||||
But it is save as backup in the
|
|
||||||
$config["homeurl_static"]
|
|
||||||
for expecial cases.
|
|
||||||
----------Attention--------------------
|
|
||||||
*/
|
|
||||||
$config["homeurl"]="' . $url . '"; // Base URL
|
|
||||||
$config["homeurl_static"]="'.$url.'"; // Don\'t delete
|
|
||||||
// End of automatic config file
|
|
||||||
?>';
|
|
||||||
$step4 = fputs ($cfgout, $config_new);
|
|
||||||
$step4 = $step4 + fputs ($cfgout, $config_contents);
|
|
||||||
if ($step4 > 0)
|
|
||||||
$step4 = 1;
|
|
||||||
fclose ($cfgin);
|
|
||||||
fclose ($cfgout);
|
|
||||||
chmod ($pandora_config, 0600);
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step4, "Created new config file at '" . $pandora_config . "'");
|
|
||||||
|
|
||||||
if (($step4 + $step3 + $step2 + $step1) == 4) {
|
|
||||||
$everything_ok = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'pgsql':
|
|
||||||
$step1 = $step2 = $step3 = $step4 = $step5 = $step6 = $step7 = 0;
|
|
||||||
|
|
||||||
$connection = pg_connect("host='" . $dbhost . "' dbname='postgres' user='" . $dbuser . "' password='" . $dbpassword . "'");
|
|
||||||
if ($connection === false) {
|
|
||||||
check_generic(0, "Connection with Database");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
check_generic(1, "Connection with Database");
|
|
||||||
|
|
||||||
// Drop database if needed
|
|
||||||
if ($dbdrop == 1 && $dbaction == 'db_exist') {
|
|
||||||
$result = pg_query($connection, "DROP DATABASE \"" . $dbname . "\";");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($dbaction != 'db_exist' || $dbdrop == 1) {
|
|
||||||
pg_send_query($connection, "CREATE DATABASE \"" . $dbname . "\" WITH ENCODING 'utf8';");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
if (pg_result_status($result) != PGSQL_FATAL_ERROR) {
|
|
||||||
$step1 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step1, "Creating database '$dbname'");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$step1 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step1, "Creating database '$dbname'");
|
|
||||||
|
|
||||||
if ($step1 == 1) {
|
|
||||||
//Reopen DB because I don't know how to use DB in PostgreSQL
|
|
||||||
pg_close($connection);
|
|
||||||
|
|
||||||
$connection = pg_connect("host='" . $dbhost . "' dbname='" . $dbname .
|
|
||||||
"' user='" . $dbuser . "' password='" . $dbpassword . "'");
|
|
||||||
|
|
||||||
if ($connection !== false) {
|
|
||||||
$step2 = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step2, "Opening database '$dbname'");
|
|
||||||
|
|
||||||
if ($step2) {
|
|
||||||
$step3 = parse_postgresql_dump($connection, "pandoradb.postgreSQL.sql");
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic($step3, "Creating schema");
|
|
||||||
|
|
||||||
if ($step3) {
|
|
||||||
$step4 = parse_postgresql_dump($connection, "pandoradb.data.postgreSQL.sql");
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step4, "Populating database");
|
|
||||||
|
|
||||||
if (PHP_OS == "FreeBSD") {
|
|
||||||
$step_freebsd = adjust_paths_for_freebsd ($engine, $connection);
|
|
||||||
check_generic ($step_freebsd, "Adjusting paths in database for FreeBSD");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($step4) {
|
|
||||||
$random_password = random_name (8);
|
|
||||||
|
|
||||||
pg_query($connection, "DROP USER pandora");
|
|
||||||
pg_send_query($connection, "CREATE USER pandora WITH PASSWORD '" . $random_password . "'");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
if (pg_result_status($result) != PGSQL_FATAL_ERROR) {
|
|
||||||
//Set the privileges for DB
|
|
||||||
pg_send_query($connection, "GRANT ALL PRIVILEGES ON DATABASE pandora TO pandora;");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
$setDBPrivileges = 0;
|
|
||||||
if (pg_result_status($result) != PGSQL_FATAL_ERROR) {
|
|
||||||
$setDBPrivileges = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($setDBPrivileges) {
|
|
||||||
//Set the privileges for each tables.
|
|
||||||
pg_send_query($connection, "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
$tables = array();
|
|
||||||
while ($row = pg_fetch_assoc($result)) {
|
|
||||||
$tables[] = $row['table_name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$correct = 1;
|
|
||||||
foreach ($tables as $table) {
|
|
||||||
pg_send_query($connection, "GRANT ALL PRIVILEGES ON TABLE " . $table . " TO pandora;");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
if (pg_result_status($result) == PGSQL_FATAL_ERROR) {
|
|
||||||
$correct = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//For each table make owner pandora
|
|
||||||
pg_send_query($connection, "ALTER TABLE " . $table . " OWNER TO pandora;");
|
|
||||||
$result = pg_get_result($connection);
|
|
||||||
|
|
||||||
if (pg_result_status($result) == PGSQL_FATAL_ERROR) {
|
|
||||||
$correct = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//INI ----- Grant for secuences
|
|
||||||
pg_send_query($connection, "SELECT column_name FROM information_schema.columns WHERE table_name = '" . $table . "';");
|
|
||||||
$result2 = pg_get_result($connection);
|
|
||||||
|
|
||||||
$columns = array();
|
|
||||||
while ($row = pg_fetch_assoc($result2)) {
|
|
||||||
$columns[] = $row['column_name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check for each column if it have a sequence to grant
|
|
||||||
foreach ($columns as $column) {
|
|
||||||
pg_send_query($connection, "SELECT pg_get_serial_sequence('" . $table . "', '" . $column . "');");
|
|
||||||
$result3 = pg_get_result($connection);
|
|
||||||
|
|
||||||
$sequence = pg_fetch_assoc($result3);
|
|
||||||
if (!empty($sequence['pg_get_serial_sequence'])) {
|
|
||||||
pg_send_query($connection, "GRANT ALL PRIVILEGES ON SEQUENCE " . $sequence['pg_get_serial_sequence'] . " to pandora;");
|
|
||||||
$result4 = pg_get_result($connection);
|
|
||||||
|
|
||||||
if (pg_result_status($result4) == PGSQL_FATAL_ERROR) {
|
|
||||||
$correct = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//END ----- Grant for secuences
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($correct) {
|
|
||||||
$step5 = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step5, "Established privileges for user pandora. A new random password has been generated: <b>$random_password</b><div class='warn'>Please write it down, you will need to setup your Pandora FMS server, editing the </i>/etc/pandora/pandora_server.conf</i> file</div>");
|
|
||||||
|
|
||||||
if ($step5) {
|
|
||||||
$step6 = is_writable("include");
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step6, "Write permissions to save config file in './include'");
|
|
||||||
|
|
||||||
if ($step6) {
|
|
||||||
$cfgin = fopen ("include/config.inc.php","r");
|
|
||||||
$cfgout = fopen ($pandora_config,"w");
|
|
||||||
$config_contents = fread ($cfgin, filesize("include/config.inc.php"));
|
|
||||||
$dbtype = 'postgresql';
|
|
||||||
$config_new = '<?php
|
|
||||||
// Begin of automatic config file
|
|
||||||
$config["dbtype"] = "' . $dbtype . '"; //DB type (mysql, postgresql...in future others)
|
|
||||||
$config["dbname"]="'.$dbname.'"; // MySQL DataBase name
|
|
||||||
$config["dbuser"]="pandora"; // DB User
|
|
||||||
$config["dbpass"]="'.$random_password.'"; // DB Password
|
|
||||||
$config["dbhost"]="'.$dbhost.'"; // DB Host
|
|
||||||
$config["homedir"]="'.$path.'"; // Config homedir
|
|
||||||
/*
|
|
||||||
----------Attention--------------------
|
|
||||||
Please note that in certain installations:
|
|
||||||
- reverse proxy.
|
|
||||||
- web server in other ports.
|
|
||||||
- https
|
|
||||||
|
|
||||||
This variable might be dynamically altered.
|
|
||||||
|
|
||||||
But it is save as backup in the
|
|
||||||
$config["homeurl_static"]
|
|
||||||
for expecial cases.
|
|
||||||
----------Attention--------------------
|
|
||||||
*/
|
|
||||||
$config["homeurl"]="'.$url.'"; // Base URL
|
|
||||||
$config["homeurl_static"]="'.$url.'"; // Don\'t delete
|
|
||||||
// End of automatic config file
|
|
||||||
?>';
|
|
||||||
$step7 = fputs ($cfgout, $config_new);
|
|
||||||
$step7 = $step7 + fputs ($cfgout, $config_contents);
|
|
||||||
if ($step7 > 0)
|
|
||||||
$step7 = 1;
|
|
||||||
fclose ($cfgin);
|
|
||||||
fclose ($cfgout);
|
|
||||||
chmod ($pandora_config, 0600);
|
|
||||||
}
|
|
||||||
|
|
||||||
check_generic ($step7, "Created new config file at '".$pandora_config."'");
|
|
||||||
|
|
||||||
if (($step7 + $step6 + $step5 + $step4 + $step3 + $step2 + $step1) == 7) {
|
|
||||||
$everything_ok = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
echo "</table>";
|
echo "</table>";
|
||||||
|
|
||||||
@ -1358,11 +913,6 @@ function install_step4() {
|
|||||||
mysqli_query ($connection, "DROP DATABASE $dbname");
|
mysqli_query ($connection, "DROP DATABASE $dbname");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'pgsql':
|
|
||||||
break;
|
|
||||||
case 'oracle':
|
|
||||||
oracle_drop_all_objects($connection);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user