#!/usr/bin/env php . // Perform DB updates. // Used by "upgrade". // Can also be run manually in project/html/ops. require_once("../inc/util_ops.inc"); $db_revision = 0; if (file_exists("../../db_revision")) { $db_revision = (int) file_get_contents("../../db_revision"); } echo "DB version: $db_revision\n"; require_once("db_update.php"); $updates = array(); foreach($db_updates as $db_update) { if ($db_update[0] > $db_revision) { $func = $db_update[1]; echo "need update $func\n"; $updates[] = $db_update; } } if (empty($updates)) { echo "No updates needed\n"; exit; } echo "Do you want to apply these updates? (y/n) "; $x = trim(fgets(STDIN)); if ($x != 'y') { echo "OK - see db_update.php to do manual updates, or run this script again later. "; exit; } if ($argc > 1) { echo "\nWarning: you are upgrading only web or server code,\nbut these updates may affect the other code as well.\nWe recommend that you run 'upgrade' again to upgrade both parts of the code.\n\n"; } db_init_cli(); foreach($updates as $update) { list($rev, $func) = $update; echo "performing update $func\n"; call_user_func($func); $e = _mysql_error(); if ($e) { echo "\nWARNING: database upgrade failed. MySQL error message: $e Please find the update queries in html/ops/db_update.php and perform them manually. When done, edit PROJECT_DIR/db_revision so that it contains the line $rev "; break; } file_put_contents("../../db_revision", $rev); } echo "All done.\n"; ?>