<?php
/**
* Page to run a update
*
* First written: 12-04-2006
*
* Changelog:
* <ol>
* <li></li>
* </ol>
*
*
* @author H.F.N. den Boer <nico@denboer-ims.nl>
* @version 1.1.0
* @package nl.denboer-ims.imslib.install
*/
global $imslib_Backbone, $imslib_Update, $local;
$local = true;
/**
* To automatically update the database structure
*/
require_once("./class.backbone.inc.php");
// First check if access of this page is allowed
if (!isset($imslib_Backbone))
die("In order to call this file, the backbone must be included first...");
$imslib_Backbone->database["Catalog"] = "dbmetadata";
$imslib_Backbone->database["connection"]->connect($imslib_Backbone->database["Catalog"]);
//require("class.mysql.db.backup.inc.php");
//$tmp = new imslib_mysql_db_backup();
//$tmp->Execute();
//return;
/*******************************************************************************
* Read current version info and prepare update
*******************************************************************************/
/* @var $dataReader imslib_dataReader */
$dataReader = null;
$imslib_Backbone->getDataSet("SELECT * FROM sys_settings", $dataReader);
if (isset($dataReader) && $dataReader->hasNext())
{
$row = $dataReader->getNext();
$configAvailable = true;
$version_major = (int)$row["version_major"];
$version_minor = (int)$row["version_minor"];
$version_build = (int)$row["version_build"];
}
else
{
$configAvailable = false;
$version_major = 0;
$version_minor = 0;
$version_build = 0;
}
$dataReader->dispose();
unset($dataReader);
$imslib_Backbone->head["Title"] = "dbmetadata";
$imslib_Backbone->printHead();
echo "<h1>Update</h1>";
echo "<p>Current version: $version_major.$version_minor.$version_build</p>";
echo "<p>Applying database patches:</p><ul>";
flush();
$patchApplied = false;
$sql = file_get_contents("InsertMetaData.sql");
$imslib_Backbone->execScript(explode(";", $sql));
echo "Metadata updated</li>";
flush();
/**
* To automatically update the database structure
*/
require_once("class.mysql.db.maint.inc.php");
echo "<li>Updating database structure ... ";
flush();
$imslib_DataMaintenance->update();
echo " done</li>";
flush();
/*******************************************************************************
* Execute patches in chronological order
*******************************************************************************/
if ($version_major == 0 && $version_minor == 0 && $version_build == 0)
{
echo "<li>0.0.0 to 0.0.1 ... ";
// apply some data edits here...
echo " done</li>";
flush();
$version_build = 1;
$patchApplied = true;
}
/*******************************************************************************
* Update version information and exit
*******************************************************************************/
if (!$patchApplied)
echo "<li>System was already up to date, no patches nessecary...</li>";
echo "</ul>";
require("class.sqlBuilder.inc.php");
$sqlBuilder = new imslib_sqlBuilder();
/* @var $sqlBuilder imslib_sqlBuilder */
$sqlBuilder->reset("sys_settings");
$sqlBuilder->add("version_major", $version_major);
$sqlBuilder->add("version_minor", $version_minor);
$sqlBuilder->add("version_build", $version_build);
if ($configAvailable)
$sqlBuilder->setUpdateModus("id", (int)$row["id"]);
echo "<p>Registering latest version number ... ";
$imslib_Backbone->execSql($sqlBuilder->getSql());
echo " done</p>";
echo "<p>Update <b>finished</b>.</p>";
$imslib_Backbone->printFooter();
?>
|