manually check and create the Config table before running the update
This commit is contained in:
parent
aeb3c7e96c
commit
4dc164a5a1
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue