#!/usr/bin/env php <?php /** * @file scripts/dbstructure.php * @brief Does database updates from the command line */ use Friendica\App; use Friendica\Core\Config; use Friendica\Database\DBStructure; require_once "boot.php"; require_once "include/dba.php"; $a = new App(dirname(__DIR__)); @include ".htconfig.php"; dba::connect($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data); if ($_SERVER["argc"] == 2) { switch ($_SERVER["argv"][1]) { case "dryrun": DBStructure::update(true, false); return; case "update": DBStructure::update(true, true); $build = Config::get('system','build'); if (!x($build)) { Config::set('system', 'build', DB_UPDATE_VERSION); $build = DB_UPDATE_VERSION; } $stored = intval($build); $current = intval(DB_UPDATE_VERSION); // run any left update_nnnn functions in update.php for ($x = $stored; $x < $current; $x ++) { $r = run_update_function($x); if (!$r) { break; } } Config::set('system','build',DB_UPDATE_VERSION); return; case "dumpsql": DBStructure::printStructure(); return; case "toinnodb": DBStructure::convertToInnoDB(); return; } } // print help echo $_SERVER["argv"][0]." <command>\n"; echo "\n"; echo "Commands:\n"; echo "dryrun show database update schema queries without running them\n"; echo "update update database schema\n"; echo "dumpsql dump database schema\n"; echo "toinnodb convert all tables from MyISAM to InnoDB\n"; killme();