diff --git a/src/server/database/Updater/DBUpdater.cpp b/src/server/database/Updater/DBUpdater.cpp index 0d4e45123..4e06beb48 100644 --- a/src/server/database/Updater/DBUpdater.cpp +++ b/src/server/database/Updater/DBUpdater.cpp @@ -27,6 +27,7 @@ #include #include #include +#include std::string DBUpdaterUtil::GetCorrectedMySQLExecutable() { @@ -396,16 +397,23 @@ bool DBUpdater::Populate(DatabaseWorkerPool& pool) return false; } - for (std::filesystem::directory_iterator itr(DirPath); itr != DirItr; ++itr) - { - if (itr->path().extension() != ".sql") - continue; + std::vector sqlFiles; - LOG_INFO("sql.updates", ">> Applying \'{}\'...", itr->path().filename().generic_string()); + for (const auto &entry : std::filesystem::directory_iterator(DirPath)) + { + if (entry.path().extension() == ".sql") + sqlFiles.push_back(entry.path()); + } + + std::sort(sqlFiles.begin(), sqlFiles.end()); + + for (const auto &file : sqlFiles) + { + LOG_INFO("sql.updates", ">> Applying \'{}\'...", file.filename().generic_string()); try { - ApplyFile(pool, itr->path()); + ApplyFile(pool, file); } catch (UpdateException&) {