#!/usr/bin/php getValue('DB_VERSION'); // Helper functions function run_db_upgrade($db_version_now) { // Find upgrades $files = glob(dirname(__FILE__) . "/definitions/${db_version_now}_to_*"); if (count($files) == 0) die('No upgrade definitions found for ' . $db_version_now . PHP_EOL); foreach ($files as $file) { $db_version_to = preg_replace("/(.*)\/definitions\/${db_version_now}_to_/", '', $file); $db_version_to = preg_replace("/.inc.php/", '', $db_version_to); $run_string = preg_replace("/\./", '', $db_version_to); if (!require_once($file)) die('Failed to load upgrade definition: ' . $file); echo "+ Running upgrade from $db_version_now to $db_version_to" . PHP_EOL; $run = "run_$run_string"; $run(); run_db_upgrade($db_version_to); } } function execute_db_upgrade($aSql) { global $mysqli; // Run the upgrade echo '- Starting database migration to version ' . $db_version_new . PHP_EOL; foreach ($aSql as $sql) { echo '- Preparing: ' . $sql . PHP_EOL; $stmt = $mysqli->prepare($sql); if ($stmt && $stmt->execute()) { echo '- success' . PHP_EOL; } else { echo '- failed: ' . $mysqli->error . PHP_EOL; exit(1); } } } // Initial caller run_db_upgrade($db_version_now); ?>