feat(Core/DBUpdater): include pending path (#21469)

This commit is contained in:
Kitzunu 2025-02-16 21:19:31 +01:00 committed by GitHub
parent 8cfe71e27e
commit 3291c747c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 39 additions and 8 deletions

View File

@ -0,0 +1,10 @@
--
ALTER TABLE `updates`
CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`;
ALTER TABLE `updates_include`
CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`;
DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_auth';
INSERT INTO `updates_include` (`path`, `state`) VALUES
('$/data/sql/updates/pending_db_auth', 'PENDING');

View File

@ -0,0 +1,10 @@
--
ALTER TABLE `updates`
CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`;
ALTER TABLE `updates_include`
CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`;
DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_characters';
INSERT INTO `updates_include` (`path`, `state`) VALUES
('$/data/sql/updates/pending_db_characters', 'PENDING');

View File

@ -0,0 +1,10 @@
--
ALTER TABLE `updates`
CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`;
ALTER TABLE `updates_include`
CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`;
DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_world';
INSERT INTO `updates_include` (`path`, `state`) VALUES
('$/data/sql/updates/pending_db_world', 'PENDING');

View File

@ -291,7 +291,7 @@ FlashAtStart = 1
# DATABASE_CHARACTER = 2, // Character database
# DATABASE_WORLD = 4, // World database
#
# Default: 7 - (All enabled)
# Default: 7 - (All enabled)
# 4 - (Enable world only)
# 0 - (All disabled)

View File

@ -157,9 +157,7 @@ UpdateFetcher::DirectoryStorage UpdateFetcher::ReceiveIncludedDirectories() cons
std::vector<std::string> moduleList;
for (auto const& itr : Acore::Tokenize(_modulesList, ',', true))
{
moduleList.emplace_back(itr);
}
// data/sql
for (auto const& itr : moduleList)
@ -168,9 +166,7 @@ UpdateFetcher::DirectoryStorage UpdateFetcher::ReceiveIncludedDirectories() cons
Path const p(path);
if (!is_directory(p))
{
continue;
}
DirectoryEntry const entry = { p, AppliedFileEntry::StateConvert("MODULE") };
directories.push_back(entry);
@ -386,14 +382,14 @@ UpdateResult UpdateFetcher::Update(bool const redundancyChecks,
// Apply default updates
for (auto const& availableQuery : available)
{
if (availableQuery.second != CUSTOM && availableQuery.second != MODULE)
if (availableQuery.second != PENDING && availableQuery.second != CUSTOM && availableQuery.second != MODULE)
ApplyUpdateFile(availableQuery);
}
// Apply only custom/module updates
// Apply only pending/custom/module updates
for (auto const& availableQuery : available)
{
if (availableQuery.second == CUSTOM || availableQuery.second == MODULE)
if (availableQuery.second == PENDING || availableQuery.second == CUSTOM || availableQuery.second == MODULE)
ApplyUpdateFile(availableQuery);
}

View File

@ -72,6 +72,7 @@ private:
{
RELEASED,
CUSTOM,
PENDING,
MODULE,
ARCHIVED
};
@ -92,6 +93,8 @@ private:
return RELEASED;
else if (state == "CUSTOM")
return CUSTOM;
else if (state == "PENDING")
return PENDING;
else if (state == "MODULE")
return MODULE;
@ -106,6 +109,8 @@ private:
return "RELEASED";
case CUSTOM:
return "CUSTOM";
case PENDING:
return "PENDING";
case MODULE:
return "MODULE";
case ARCHIVED: