Ability to set the database version

pull/9195/head
Michael 2020-09-13 15:57:24 +00:00
rodzic cb647b5b6c
commit 50b5483ee1
3 zmienionych plików z 27 dodań i 2 usunięć

Wyświetl plik

@ -55,6 +55,7 @@ Commands
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
version Set the database to a given number
Options
-h|--help|-? Show help information
@ -86,8 +87,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()) {
@ -115,6 +118,12 @@ HELP;
DBStructure::convertToInnoDB();
$output = ob_get_clean();
break;
case "version":
ob_start();
DBStructure::setDatabaseVersion($this->getArgument(1));
$output = ob_get_clean();
break;
default:
$output = 'Unknown command: ' . $this->getArgument(0);
}

Wyświetl plik

@ -48,6 +48,22 @@ class DBStructure
*/
private static $definition = [];
/**
* Set a database version to trigger update functions
*
* @param string $version
* @return void
*/
public static function setDatabaseVersion(string $version)
{
if (!is_numeric($version)) {
throw new \Asika\SimpleConsole\CommandArgsException('The version number must be numeric');
}
DI::config()->set('system', 'build', $version);
echo DI::l10n()->t('The database version had been set to %s.', $version);
}
/**
* Converts all tables from MyISAM/InnoDB Antelope to InnoDB Barracuda
*/

Wyświetl plik

@ -95,7 +95,7 @@ class Friendica extends BaseModule
'about' => DI::l10n()->t('This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.',
'<strong>' . FRIENDICA_VERSION . '</strong>',
DI::baseUrl()->get(),
'<strong>' . DB_UPDATE_VERSION . '</strong>',
'<strong>' . DB_UPDATE_VERSION . '/' . $config->get('system', 'build') .'</strong>',
'<strong>' . $config->get('system', 'post_update_version') . '</strong>'),
'friendica' => DI::l10n()->t('Please visit <a href="https://friendi.ca">Friendi.ca</a> to learn more about the Friendica project.'),
'bugs' => DI::l10n()->t('Bug reports and issues: please visit') . ' ' . '<a href="https://github.com/friendica/friendica/issues?state=open">' . DI::l10n()->t('the bugtracker at github') . '</a>',