Location: PHPKode > scripts > Database metadata > update.php
<?php
/**
 * Page to run a update
 *
 * First written: 12-04-2006
 *
 * Changelog:
 * <ol>
 * 	<li></li>
 * </ol>
 *
 *
 * @author H.F.N. den Boer <hide@address.com>
 * @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();

?>
Return current item: Database metadata