manually check and create the Config table before running the update

This commit is contained in:
Philipp Holzer 2023-02-12 16:44:56 +01:00
parent aeb3c7e96c
commit 4dc164a5a1
Signed by: nupplaPhil
GPG key ID: 24A7501396EB5432

View file

@ -129,22 +129,30 @@ class Update
DI::lock()->release('dbupdate', true);
}
if (!DBStructure::existsTable('config')) {
DBA::e(<<<EOF
CREATE TABLE IF NOT EXISTS `config` (
`id` int unsigned NOT NULL auto_increment COMMENT '',
`cat` varbinary(50) NOT NULL DEFAULT '' COMMENT 'The category of the entry',
`k` varbinary(50) NOT NULL DEFAULT '' COMMENT 'The key of the entry',
`v` mediumtext COMMENT '',
PRIMARY KEY(`id`),
UNIQUE INDEX `cat_k` (`cat`,`k`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='main configuration storage';
EOF
);
}
$build = DI::config()->get('system', 'build');
if (empty($build)) {
// legacy option - check if the Config table exists
if (DBStructure::existsTable('config')) {
$dbConfig = DBA::selectFirst('config', ['v'], ['cat' => 'system', 'k' => 'build']);
if (!empty($dbConfig)) {
$build = $dbConfig['v'];
}
$dbConfig = DBA::selectFirst('config', ['v'], ['cat' => 'system', 'k' => 'build']);
if (!empty($dbConfig)) {
$build = $dbConfig['v'];
}
if (empty($build) || ($build > DB_UPDATE_VERSION)) {
// legacy option - check if the Config table exists
if (DBStructure::existsTable('config')) {
DI::config()->set('system', 'build', DB_UPDATE_VERSION - 1);
}
DI::config()->set('system', 'build', DB_UPDATE_VERSION - 1);
$build = DB_UPDATE_VERSION - 1;
}
}