system_settings_table); $lastVersion = DBUtil::getOneResultKey($query, 'value'); $currentVersion = $default->systemVersion; $upgrades = describeUpgrade($lastVersion, $currentVersion); $ret = "
| Code | Description | Applied |
|---|---|---|
| %s | %s | %s |
Logging support is not currently working. Check post-installation checkup.
'; exit(1); } if (PEAR::isError($dbSupport)) { print 'Database support is not currently working. Check post-installation checkup.
'; exit(1); } ?>
|
$action = trim($_REQUEST["go"]); switch ($action) { case 'UpgradeConfirm': case 'UpgradePreview': UpgradePreview(); break; case 'Upgrade': Upgrade(); break; case 'BackupConfirm': backupConfirm(); break; case 'Backup': backup(); break; case 'BackupDone': backupDone(); break; case 'RestoreConfirm': restoreConfirm(); break; case 'RestoreSelect': restoreSelect(); break; case 'RestoreSelected': restoreSelected(); break; case 'Restore': restore(); break; case 'RestoreDone': restoreDone(); break; case 'Login': login(); break; case 'LoginProcess': loginProcess(); break; default: if (!isset($_SESSION['setup_user'])) login(); else welcome(); break; } function login() { ?> The database upgrade wizard completes the upgrade process on an existing installation. It applies any upgrades to the database that may be required. Only administrator users may access the upgrade wizard. } function loginProcess() { $username=$_REQUEST['username']; $password=$_REQUEST['password']; $authenticated = checkPassword($username, $password); if (!$authenticated) { session_unset(); loginFailed(_kt('Could not authenticate administrative user')); return; } $_SESSION['setup_user'] = $username; welcome(); } function checkPassword($username, $password) { global $default; $sTable = KTUtil::getTableName('users'); $sQuery = "SELECT count(*) AS match_count FROM $sTable WHERE username = ? AND password = ?"; $aParams = array($username, md5($password)); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'match_count'); if (PEAR::isError($res)) { return false; } else { $sTable = KTUtil::getTableName('users_groups_link'); $sQuery = "SELECT count(*) AS match_count FROM $sTable WHERE user_id = ? AND group_id = 1"; $aParams = array($res); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'match_count'); if (PEAR::isError($res)) { return false; } else { return ($res == 1); } } } function loginFailed($message) { print "$message"; login(); } function resolveMysqlDir() { // possibly detect existing installations: if (OS_UNIX) { $dirs = array('/opt/mysql/bin','/usr/local/mysql/bin'); $mysqlname ='mysql'; } else { $dirs = explode(';', $_SERVER['PATH']); $dirs[] ='c:/Program Files/MySQL/MySQL Server 5.0/bin'; $dirs[] = 'c:/program files/ktdms/mysql/bin'; $mysqlname ='mysql.exe'; } $oKTConfig =& KTConfig::getSingleton(); $mysqldir = $oKTConfig->get('backup/mysqlDirectory',$mysqldir); $dirs[] = $mysqldir; if (strpos(__FILE__,'knowledgeTree') !== false && strpos(__FILE__,'ktdms') != false) { $dirs [] = realpath(dirname($FILE) . '/../../mysql/bin'); } foreach($dirs as $dir) { if (is_file($dir . '/' . $mysqlname)) { return $dir; } } return ''; } function create_backup_stmt($targetfile=null) { $oKTConfig =& KTConfig::getSingleton(); $adminUser = $oKTConfig->get('db/dbAdminUser'); $adminPwd = $oKTConfig->get('db/dbAdminPass'); $dbHost = $oKTConfig->get('db/dbHost'); $dbName = $oKTConfig->get('db/dbName'); $dbPort = trim($oKTConfig->get('db/dbPort')); if (empty($dbPort) || $dbPort=='default') $dbPort = get_cfg_var('mysql.default_port'); if (empty($dbPort)) $dbPort='3306'; $dbSocket = trim($oKTConfig->get('db/dbSocket')); if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket'); if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock'; $date=date('Y-m-d-H-i-s'); $dir=resolveMysqlDir(); $info['dir']=$dir; $prefix=''; if (OS_UNIX) { $prefix .= "./"; } if (@stat($dbSocket) !== false) { $mechanism="--socket=\"$dbSocket\""; } else { $mechanism="--port=\"$dbPort\""; } $tmpdir=resolveTempDir(); if (is_null($targetfile)) { $targetfile="$tmpdir/kt-backup-$date.sql"; } $stmt = $prefix . "mysqldump --user=\"$adminUser\" -p $mechanism \"$dbName\" > \"$targetfile\""; $info['display']=$stmt; $info['target']=$targetfile; $stmt = $prefix. "mysqldump --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" > \"$targetfile\""; $info['cmd']=$stmt; return $info; } function create_restore_stmt($targetfile) { $oKTConfig =& KTConfig::getSingleton(); $adminUser = $oKTConfig->get('db/dbAdminUser'); $adminPwd = $oKTConfig->get('db/dbAdminPass'); $dbHost = $oKTConfig->get('db/dbHost'); $dbName = $oKTConfig->get('db/dbName'); $dbPort = trim($oKTConfig->get('db/dbPort')); if ($dbPort=='' || $dbPort=='default')$dbPort = get_cfg_var('mysql.default_port'); if (empty($dbPort)) $dbPort='3306'; $dbSocket = trim($oKTConfig->get('db/dbSocket')); if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket'); if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock'; $dir=resolveMysqlDir(); $info['dir']=$dir; $prefix=''; if (OS_UNIX) { $prefix .= "./"; } if (@stat($dbSocket) !== false) { $mechanism="--socket=\"$dbSocket\""; } else { $mechanism="--port=\"$dbPort\""; } $tmpdir=resolveTempDir(); $stmt = $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism drop \"$dbName\" "; $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism create \"$dbName\" "; $stmt .= $prefix ."mysql --user=\"$adminUser\" -p $mechanism \"$dbName\" < \"$targetfile\"\n"; $info['display']=$stmt; $stmt = $prefix ."mysqladmin --user=\"$adminUser\" --force --password=\"$adminPwd\" $mechanism drop \"$dbName\"\n"; $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism create \"$dbName\"\n"; $stmt .= $prefix ."mysql --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" < \"$targetfile\""; $info['cmd']=$stmt; return $info; } function title($title) { if (!isset($_SESSION['setup_user'])) { print ""; } print " $title"; } function resolveTempDir() { if (OS_UNIX) { $dir='/tmp/kt-db-backup'; } else { $dir='c:/kt-db-backup'; } $oKTConfig =& KTConfig::getSingleton(); $dir = $oKTConfig->get('backup/backupDirectory',$dir); if (!is_dir($dir)) { mkdir($dir); } return $dir; } function upgradeConfirm() { title('Confirm Upgrade'); if (!isset($_SESSION['backupStatus']) || $_SESSION['backupStatus'] === false) { ?>Please ensure that you have made a backup before continuing with the upgrade process.
We are about to start the upgrade process. } function backupConfirm() { title('Confirm Backup'); $stmt=create_backup_stmt(); $_SESSION['backupFile'] = $stmt['target']; $dir=$stmt['dir']; if ($dir != '') { ?> Are you sure you want to perform the backup? Your mysql installation has been resolved. Manually, you would do the following:
|