X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FDatabaseStructure.php;h=4d4125e88a7d6cf2f9de7f919221caa7feb64fc0;hb=e659a0314086dd700dbe5e754e383ab758725805;hp=5a92587fc39c927c27957d25624c687b6aa313f3;hpb=61ff99c410d8f1ad900ed22426ab2c2d1539d933;p=friendica.git diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index 5a92587fc3..4d4125e88a 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -1,6 +1,6 @@ [-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 - initial Set needed initial values in the tables - version Set the database to a given number - -Options + drop Show tables that aren't in use by Friendica anymore and can be dropped + -e|--execute Execute the removal + + 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; } - public function __construct(Database $dba, Cache $configCache, $argv = null) + public function __construct(Database $dba, DbaDefinition $dbaDefinition, ViewDefinition $viewDefinition, BasePath $basePath, IManageConfigValues $config, $argv = null) { parent::__construct($argv); $this->dba = $dba; - $this->configCache = $configCache; + $this->dbaDefinition = $dbaDefinition; + $this->viewDefinition = $viewDefinition; + $this->config = $config; + $this->basePath = $basePath->getPath(); } - protected function doExecute() + protected function doExecute(): int { if ($this->getOption('v')) { $this->out('Class: ' . __CLASS__); @@ -98,22 +117,28 @@ HELP; throw new RuntimeException('Unable to connect to database'); } - $basePath = $this->configCache->get('system', 'basepath'); + $basePath = $this->config->get('system', 'basepath'); switch ($this->getArgument(0)) { case "dryrun": - $output = DBStructure::update($basePath, true, false); + $output = DBStructure::dryRun(); break; case "update": $force = $this->getOption(['f', 'force'], false); $override = $this->getOption(['o', 'override'], false); $output = Update::run($basePath, $force, $override,true, false); break; - case "dumpsql": + case "drop": + $execute = $this->getOption(['e', 'execute'], false); ob_start(); - DBStructure::printStructure($basePath); + DBStructure::dropTables($execute); $output = ob_get_clean(); break; + case "dumpsql": + DocWriter::writeDbDefinition($this->dbaDefinition, $this->basePath); + $output = DbaDefinitionSqlWriter::create($this->dbaDefinition); + $output .= ViewDefinitionSqlWriter::create($this->viewDefinition); + break; case "toinnodb": ob_start(); DBStructure::convertToInnoDB(); @@ -133,7 +158,7 @@ HELP; $output = 'Unknown command: ' . $this->getArgument(0); } - $this->out($output); + $this->out(trim($output)); return 0; }