. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * * @copyright 2008-2009, KnowledgeTree Inc. * @license GNU General Public License version 3 * @author KnowledgeTree Team * @package Upgrader * @version Version 0.1 */ require '../../config/dmsDefaults.php'; class upgradeBackup extends Step { /** * Reference to Database object * * @author KnowledgeTree Team * @access private * @var object */ private $_dbhandler = null; private $privileges_check = 'tick'; private $database_check = 'tick'; protected $silent = true; protected $util = null; public function __construct() { $this->temp_variables = array("step_name"=>"backup", "silent"=>$this->silent); $this->_dbhandler = new UpgradedbUtil(); $this->util = new UpgradeUtil(); } function doStep() { parent::doStep(); if(!$this->inStep("backup")) { $this->doRun(); return 'landing'; } if($this->next()) { if ($this->doRun()) { return 'next'; } } else if ($this->confirm()) { if ($this->doRun('confirm')) { return 'confirm'; } } else if ($this->backupNow()) { if ($this->doRun('backupNow')) { return 'next'; } else { return 'error'; } } else if($this->previous()) { return 'previous'; } $this->doRun(); return 'landing'; } function backupNow() { return isset($_POST['BackupNow']); } function doRun($action = null) { $this->temp_variables['action'] = $action; if (is_null($action) || ($action == 'confirm')) { $this->temp_variables['title'] = 'Confirm Backup'; $this->backupConfirm(); } else { $this->temp_variables['title'] = 'Backup Created'; $this->backup(); // TODO error checking (done in backupDone at the moment) $this->backupDone(); } $this->storeSilent();// Set silent mode variables return true; } /** * Set all silent mode varibles * */ private function storeSilent() { } /* // these belong in a shared lib function set_state($value) { $_SESSION['state'] = $value; } function check_state($value, $state='Home') { if ($_SESSION['state'] != $value) { ?> check_state(1); // $this->set_state(2); $targetfile = $_SESSION['backupFile']; $stmt = $this->create_backup_stmt($targetfile); $dir = $stmt['dir']; if (is_file($dir . '/mysqladmin') || is_file($dir . '/mysqladmin.exe')) { $curdir=getcwd(); chdir($dir); $handle = popen($stmt['cmd'], 'r'); $read = fread($handle, 10240); pclose($handle); $_SESSION['backupOutput']=$read; $dir = $this->resolveTempDir(); $_SESSION['backupFile'] = $stmt['target']; if (OS_UNIX) { chmod($stmt['target'],0600); } if (is_file($stmt['target']) && filesize($stmt['target']) > 0) { $_SESSION['backupStatus'] = true; } else { $_SESSION['backupStatus'] = false; } } else { ?>
The mysqldump utility was not found in the subdirectory.
check_state(2);
// $this->set_state(3);
// title('Backup Status');
$status = $_SESSION['backupStatus'];
$filename = $_SESSION['backupFile'];
$this->temp_variables['backupStatus'] = $status;
if ($status)
{
$stmt = $this->util->create_restore_stmt($filename);
$this->temp_variables['display'] = 'The backup file
It appears as though the backup has been successful.
'; if ($stmt['dir'] != '') { $this->temp_variables['dir'] = $stmt['dir']; $this->temp_variables['display'] .= 'Manually, you would do the following to restore the backup:
|
'; } else { $this->temp_variables['display'] .= 'The mysql backup utility could not be found automatically. Please edit the config.ini and update the backup/mysql Directory entry. If you need to restore from this backup, you should be able to use the following statements:
We appologise for the inconvenience.
|