X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole%2FDatabaseStructure.php;h=4b607c1e6a36918c07d1957536c9c1da36dedd37;hb=a8d3a4d218b9c844b7a5d4134fb7f27d64be559d;hp=709b9724e88cf34c73bfd02ac1b0ced108c67479;hpb=2f1a1debf44b430d3e86e584580e70625af7c335;p=friendica.git diff --git a/src/Core/Console/DatabaseStructure.php b/src/Core/Console/DatabaseStructure.php index 709b9724e8..4b607c1e6a 100644 --- a/src/Core/Console/DatabaseStructure.php +++ b/src/Core/Console/DatabaseStructure.php @@ -1,110 +1,118 @@ - - */ -class DatabaseStructure extends \Asika\SimpleConsole\Console -{ - protected $helpOptions = ['h', 'help', '?']; - - protected function getHelp() - { - $help = << [-h|--help|-?] [-v] - -Commands - dryrun Show database update schema queries without running them - update Update database schema - dumpsql Dump database schema - toinnodb Convert all tables from MyISAM to InnoDB - -Options - -h|--help|-? Show help information - -v Show more debug information. -HELP; - return $help; - } - - protected function doExecute() - { - if ($this->getOption('v')) { - $this->out('Class: ' . __CLASS__); - $this->out('Arguments: ' . var_export($this->args, true)); - $this->out('Options: ' . var_export($this->options, true)); - } - - if (count($this->args) == 0) { - $this->out($this->getHelp()); - return 0; - } - - if (count($this->args) > 1) { - throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); - } - - require_once '.htconfig.php'; - $result = \dba::connect($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); - - if (!$result) { - throw new \RuntimeException('Unable to connect to database'); - } - - Core\Config::load(); - - switch ($this->getArgument(0)) { - case "dryrun": - $output = DBStructure::update(true, false); - break; - case "update": - $output = DBStructure::update(true, true); - - $build = Core\Config::get('system', 'build'); - if (empty($build)) { - Core\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; - } - } - - Core\Config::set('system', 'build', DB_UPDATE_VERSION); - break; - case "dumpsql": - ob_start(); - DBStructure::printStructure(); - $output = ob_get_clean(); - break; - case "toinnodb": - ob_start(); - DBStructure::convertToInnoDB(); - $output = ob_get_clean(); - break; - } - - $this->out($output); - - return 0; - } - -} + + */ +class DatabaseStructure extends \Asika\SimpleConsole\Console +{ + protected $helpOptions = ['h', 'help', '?']; + + protected function getHelp() + { + $help = << [-h|--help|-?] [-v] + +Commands + dryrun Show database update schema queries without running them + update Update database schema + dumpsql Dump database schema + toinnodb Convert all tables from MyISAM to InnoDB + +Options + -h|--help|-? Show help information + -v Show more debug information. +HELP; + return $help; + } + + protected function doExecute() + { + $a = get_app(); + + if ($this->getOption('v')) { + $this->out('Class: ' . __CLASS__); + $this->out('Arguments: ' . var_export($this->args, true)); + $this->out('Options: ' . var_export($this->options, true)); + } + + if (count($this->args) == 0) { + $this->out($this->getHelp()); + return 0; + } + + if (count($this->args) > 1) { + throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); + } + + if (!DBA::connected()) { + throw new RuntimeException('Unable to connect to database'); + } + + Core\Config::load(); + + switch ($this->getArgument(0)) { + case "dryrun": + $output = DBStructure::update(true, false); + break; + case "update": + $build = Core\Config::get('system', 'build'); + if (empty($build)) { + Core\Config::set('system', 'build', DB_UPDATE_VERSION); + $build = DB_UPDATE_VERSION; + } + + $stored = intval($build); + $current = intval(DB_UPDATE_VERSION); + + // run the pre_update_nnnn functions in update.php + for ($x = $stored; $x < $current; $x ++) { + $r = run_update_function($x, 'pre_update'); + if (!$r) { + break; + } + } + + $output = DBStructure::update(true, true); + + // run the update_nnnn functions in update.php + for ($x = $stored; $x < $current; $x ++) { + $r = run_update_function($x, 'update'); + if (!$r) { + break; + } + } + + Core\Config::set('system', 'build', DB_UPDATE_VERSION); + break; + case "dumpsql": + ob_start(); + DBStructure::printStructure(); + $output = ob_get_clean(); + break; + case "toinnodb": + ob_start(); + DBStructure::convertToInnoDB(); + $output = ob_get_clean(); + break; + } + + $this->out($output); + + return 0; + } + +}