X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FDatabaseStructure.php;h=343c90023d8bfad831f6bd3f6cac074c18a3da3e;hb=122ad0af14f046c2462a03fe33967dc41abfc8b5;hp=6b1fa8d4d6fecaad35db3b445e00ddec0735820d;hpb=193e0d9613e1086d283c0a58c2c784a6400035ae;p=friendica.git diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index 6b1fa8d4d6..343c90023d 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -48,19 +48,25 @@ class DatabaseStructure extends \Asika\SimpleConsole\Console $help = << [-h|--help|-?] |-f|--force] [-v] + bin/console dbstructure [options] Commands - dryrun Show database update schema queries without running them - update Update database schema - dumpsql Dump database schema - toinnodb Convert all tables from MyISAM or InnoDB in the Antelope file format to InnoDB in the Barracuda file format + drop Show tables that aren't in use by Friendica anymore and can be dropped + -e|--execute Execute the dropping -Options + update Update database schema + -f|--force Force the update command (Even if the database structure matches) + -o|--override Override running or stalling updates + + dryrun Show database update schema queries without running them + dumpsql Dump database schema + toinnodb Convert all tables from MyISAM or InnoDB in the Antelope file format to InnoDB in the Barracuda file format + initial Set needed initial values in the tables + version Set the database to a given number + +General Options -h|--help|-? Show help information -v Show more debug information. - -f|--force Force the update command (Even if the database structure matches) - -o|--override Override running or stalling updates HELP; return $help; } @@ -86,8 +92,10 @@ HELP; return 0; } - if (count($this->args) > 1) { + if ((count($this->args) > 1) && ($this->getArgument(0) != 'version')) { throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); + } elseif ((count($this->args) != 2) && ($this->getArgument(0) == 'version')) { + throw new \Asika\SimpleConsole\CommandArgsException('This command needs two arguments'); } if (!$this->dba->isConnected()) { @@ -105,6 +113,12 @@ HELP; $override = $this->getOption(['o', 'override'], false); $output = Update::run($basePath, $force, $override,true, false); break; + case "drop": + $execute = $this->getOption(['e', 'execute'], false); + ob_start(); + DBStructure::dropTables($execute); + $output = ob_get_clean(); + break; case "dumpsql": ob_start(); DBStructure::printStructure($basePath); @@ -115,11 +129,21 @@ HELP; DBStructure::convertToInnoDB(); $output = ob_get_clean(); break; + case "version": + ob_start(); + DBStructure::setDatabaseVersion($this->getArgument(1)); + $output = ob_get_clean(); + break; + case "initial": + ob_start(); + DBStructure::checkInitialValues(true); + $output = ob_get_clean(); + break; default: $output = 'Unknown command: ' . $this->getArgument(0); } - $this->out($output); + $this->out(trim($output)); return 0; }