forked from science-ation/science-ation
110 lines
3.0 KiB
PHP
110 lines
3.0 KiB
PHP
<?
|
|
|
|
if(file_exists("eval.code.version.txt"))
|
|
{
|
|
$dbcodeversion_file=file("eval.code.version.txt");
|
|
$dbcodeversion=trim($dbcodeversion_file[0]);
|
|
}
|
|
else
|
|
{
|
|
echo "Could not load current eval.code.version.txt\n";
|
|
exit;
|
|
}
|
|
include_once "../sfiab_common.inc.php";
|
|
//same fix here for mysql 5.1 not truncating the 16 char usernames
|
|
$DBUSER=substr($DBUSER,0,16);
|
|
mysql_connect($DBHOST,$DBUSER,$DBPASS);
|
|
mysql_select_db($DBNAME);
|
|
$q=mysql_query("SELECT db_version FROM eval_config");
|
|
$r=mysql_fetch_object($q);
|
|
$dbdbversion=$r->db_version;
|
|
if(!$dbdbversion)
|
|
{
|
|
echo "Could not get current 'Evaluations' db version. Is the plug-in properly installed?\n";
|
|
exit;
|
|
}
|
|
|
|
if($dbcodeversion && $dbdbversion)
|
|
{
|
|
//lets see if they match
|
|
if($dbcodeversion == $dbdbversion)
|
|
{
|
|
echo "DB and CODE for 'Evaluations' are all up-to-date. Version: $dbdbversion\n";
|
|
exit;
|
|
}
|
|
else if($dbcodeversion<$dbdbversion)
|
|
{
|
|
echo "ERROR: dbcodeversion<dbdbversion ($dbcodeversion<$dbdbversion). This should not happen!";
|
|
exit;
|
|
|
|
}
|
|
else if($dbcodeversion>$dbdbversion)
|
|
{
|
|
echo "DB update requirements detected<br />";
|
|
echo "Current 'Evaluations' DB Version: $dbdbversion<br />";
|
|
echo "Current 'Evaluations' CODE Version: $dbcodeversion<br />";
|
|
|
|
echo "Updating database from $dbdbversion to $dbcodeversion<br />";
|
|
|
|
for($ver=$dbdbversion+1;$ver<=$dbcodeversion;$ver++)
|
|
{
|
|
if(file_exists("db.eval.update.$ver.sql"))
|
|
{
|
|
echo "db.eval.update.$ver.sql detected - running...";
|
|
$exit_code = 0; // assume no errors for now
|
|
$filename = 'db.eval.update.'.$ver.'.sql';
|
|
// Temporary variable, used to store current query
|
|
$templine = '';
|
|
// Read in entire file
|
|
$lines = file($filename);
|
|
// Loop through each line
|
|
foreach ($lines as $line)
|
|
{
|
|
// Skip it if it's a comment
|
|
if (substr($line, 0, 2) == '--' || $line == '')
|
|
continue;
|
|
// Add this line to the current segment
|
|
$templine .= $line;
|
|
// If it has a semicolon at the end, it's the end of the query
|
|
if (substr(trim($line), -1, 1) == ';')
|
|
{
|
|
// Perform the query
|
|
if(!mysql_query($templine)){
|
|
echo('<br/>Error performing query!<br/>'.$templine.'<br/> mysqlerror: '.mysql_error().'<br /><br />');
|
|
$error_count += 1;
|
|
$exit_code = -1; // do we bail out here or keep going? keep going for now, get all errors
|
|
}
|
|
// Reset temp variable to empty
|
|
$templine = '';
|
|
}
|
|
}
|
|
if($exit_code != 0) {
|
|
/* mysql failed!, what now? */
|
|
$error_count += 1;
|
|
echo "<br /><b>ERROR in db_update: Failed to execute query(s) without error!</b><br />";
|
|
}
|
|
else{
|
|
echo " Done!<br />";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
echo "Version $ver SQL update file not found - skipping over\n";
|
|
}
|
|
}
|
|
echo "<br />All done - updating Evaluations' new DB version to $dbcodeversion\n";
|
|
if ($error_count == 0 ){
|
|
mysql_query("UPDATE eval_config SET db_version='$dbcodeversion'");
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
echo "ERROR: dbcodeversion and dbdbversion are not defined\n";
|
|
}
|
|
|
|
|
|
?>
|