mirror of
https://github.com/friendica/friendica
synced 2024-11-18 20:23:44 +00:00
Ability to set the database version
This commit is contained in:
parent
cb647b5b6c
commit
50b5483ee1
3 changed files with 27 additions and 2 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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>',
|
||||
|
|
Loading…
Reference in a new issue