correct db-exists check in installation-process

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2021-10-10 14:32:02 +02:00
parent 52135a1d3a
commit db1df84ef1

View File

@@ -791,48 +791,50 @@ class FroxlorInstall
$tables_exist = true; $tables_exist = true;
} }
if ($tables_exist && (int)$this->_data['mysql_forcecreate'] > 0) { if ($tables_exist) {
// set status if ((int)$this->_data['mysql_forcecreate'] > 0) {
$content .= $this->_status_message('orange', 'exists (' . $this->_data['mysql_database'] . ')'); // set status
// tell what's going on $content .= $this->_status_message('orange', 'exists (' . $this->_data['mysql_database'] . ')');
$content .= $this->_status_message('begin', $this->_lng['install']['backup_old_db']); // tell what's going on
$content .= $this->_status_message('begin', $this->_lng['install']['backup_old_db']);
// create temporary backup-filename // create temporary backup-filename
$filename = "/tmp/froxlor_backup_" . date('YmdHi') . ".sql"; $filename = "/tmp/froxlor_backup_" . date('YmdHi') . ".sql";
// look for mysqldump // look for mysqldump
$do_backup = false; $do_backup = false;
if (file_exists("/usr/bin/mysqldump")) { if (file_exists("/usr/bin/mysqldump")) {
$do_backup = true; $do_backup = true;
$mysql_dump = '/usr/bin/mysqldump'; $mysql_dump = '/usr/bin/mysqldump';
} elseif (file_exists("/usr/local/bin/mysqldump")) { } elseif (file_exists("/usr/local/bin/mysqldump")) {
$do_backup = true; $do_backup = true;
$mysql_dump = '/usr/local/bin/mysqldump'; $mysql_dump = '/usr/local/bin/mysqldump';
} }
// create temporary .cnf file // create temporary .cnf file
$cnffilename = "/tmp/froxlor_dump.cnf"; $cnffilename = "/tmp/froxlor_dump.cnf";
$dumpcnf = "[mysqldump]".PHP_EOL."password=\"".$this->_data['mysql_root_pass']."\"".PHP_EOL; $dumpcnf = "[mysqldump]" . PHP_EOL . "password=\"" . $this->_data['mysql_root_pass'] . "\"" . PHP_EOL;
file_put_contents($cnffilename, $dumpcnf); file_put_contents($cnffilename, $dumpcnf);
if ($do_backup) { if ($do_backup) {
$command = $mysql_dump . " --defaults-extra-file=" . $cnffilename . " " . escapeshellarg($this->_data['mysql_database']) . " -u " . escapeshellarg($this->_data['mysql_root_user']) . " --result-file=" . $filename; $command = $mysql_dump . " --defaults-extra-file=" . $cnffilename . " " . escapeshellarg($this->_data['mysql_database']) . " -u " . escapeshellarg($this->_data['mysql_root_user']) . " --result-file=" . $filename;
$output = []; $output = [];
exec($command, $output); exec($command, $output);
@unlink($cnffilename); @unlink($cnffilename);
if (stristr(implode(" ", $output), "error") || !file_exists($filename)) { if (stristr(implode(" ", $output), "error") || ! file_exists($filename)) {
$content .= $this->_status_message('red', $this->_lng['install']['backup_failed']); $content .= $this->_status_message('red', $this->_lng['install']['backup_failed']);
$this->_abort = true; $this->_abort = true;
} else {
$content .= $this->_status_message('green', 'OK (' . $filename . ')');
}
} else { } else {
$content .= $this->_status_message('green', 'OK (' . $filename . ')'); $content .= $this->_status_message('red', $this->_lng['install']['backup_binary_missing']);
$this->_abort = true;
} }
} else { } else {
$content .= $this->_status_message('red', $this->_lng['install']['backup_binary_missing']); $content .= $this->_status_message('red', $this->_lng['install']['db_exists']);
$this->_abort = true; $this->_abort = true;
} }
} else {
$content .= $this->_status_message('red', $this->_lng['install']['db_exists']);
$this->_abort = true;
} }
return $content; return $content;