X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FDatabaseStructure.php;h=4d4125e88a7d6cf2f9de7f919221caa7feb64fc0;hb=1087e36a63cdb2e830d3d368f98042ab64e7b4ed;hp=a7934ef84c65d1e4b99dbb5c60c26712be81f65e;hpb=246a90b0e6a130517ef2a9cec86d5cd87d3ba6ee;p=friendica.git diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index a7934ef84c..4d4125e88a 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -1,6 +1,6 @@ [-h|--help|-?] [-e|--execute] |-f|--force] [-o|--override] [-v] + bin/console dbstructure [options] Commands - dryrun Show database update schema queries without running them - update Update database schema - drop Drop tables that aren't in use anymore - 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. - -e|--execute Execute the dropping. - -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__); @@ -100,11 +117,11 @@ 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); @@ -118,9 +135,9 @@ HELP; $output = ob_get_clean(); break; case "dumpsql": - ob_start(); - DBStructure::printStructure($basePath); - $output = ob_get_clean(); + DocWriter::writeDbDefinition($this->dbaDefinition, $this->basePath); + $output = DbaDefinitionSqlWriter::create($this->dbaDefinition); + $output .= ViewDefinitionSqlWriter::create($this->viewDefinition); break; case "toinnodb": ob_start();