Merge pull request #9195 from annando/dbversion
Ability to set the database version
This commit is contained in:
commit
1415d1903a
3 changed files with 27 additions and 2 deletions
|
@ -55,6 +55,7 @@ Commands
|
||||||
update Update database schema
|
update Update database schema
|
||||||
dumpsql Dump 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
|
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
|
Options
|
||||||
-h|--help|-? Show help information
|
-h|--help|-? Show help information
|
||||||
|
@ -86,8 +87,10 @@ HELP;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($this->args) > 1) {
|
if ((count($this->args) > 1) && ($this->getArgument(0) != 'version')) {
|
||||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
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()) {
|
if (!$this->dba->isConnected()) {
|
||||||
|
@ -115,6 +118,12 @@ HELP;
|
||||||
DBStructure::convertToInnoDB();
|
DBStructure::convertToInnoDB();
|
||||||
$output = ob_get_clean();
|
$output = ob_get_clean();
|
||||||
break;
|
break;
|
||||||
|
case "version":
|
||||||
|
ob_start();
|
||||||
|
DBStructure::setDatabaseVersion($this->getArgument(1));
|
||||||
|
$output = ob_get_clean();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$output = 'Unknown command: ' . $this->getArgument(0);
|
$output = 'Unknown command: ' . $this->getArgument(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,22 @@ class DBStructure
|
||||||
*/
|
*/
|
||||||
private static $definition = [];
|
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
|
* 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.',
|
'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>',
|
'<strong>' . FRIENDICA_VERSION . '</strong>',
|
||||||
DI::baseUrl()->get(),
|
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>'),
|
'<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.'),
|
'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>',
|
'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