mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-24 04:51:30 +00:00
[Database] Fix database version checking edge case issue (#3428)
This commit is contained in:
parent
5249b065d3
commit
f2c4babd8d
@ -46,7 +46,7 @@ void DatabaseUpdate::CheckDbUpdates()
|
|||||||
InjectBotsVersionColumn();
|
InjectBotsVersionColumn();
|
||||||
auto v = GetDatabaseVersions();
|
auto v = GetDatabaseVersions();
|
||||||
auto b = GetBinaryDatabaseVersions();
|
auto b = GetBinaryDatabaseVersions();
|
||||||
if (CheckVersions(v, b)) {
|
if (CheckVersionsUpToDate(v, b)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ DatabaseUpdate *DatabaseUpdate::SetDatabase(Database *db)
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DatabaseUpdate::CheckVersions(DatabaseVersion v, DatabaseVersion b)
|
bool DatabaseUpdate::CheckVersionsUpToDate(DatabaseVersion v, DatabaseVersion b)
|
||||||
{
|
{
|
||||||
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
|
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ bool DatabaseUpdate::CheckVersions(DatabaseVersion v, DatabaseVersion b)
|
|||||||
(v.server_database_version == b.server_database_version) ? "up to date" : "checking updates"
|
(v.server_database_version == b.server_database_version) ? "up to date" : "checking updates"
|
||||||
);
|
);
|
||||||
|
|
||||||
if (b.bots_database_version > 0) {
|
if (RuleB(Bots, Enabled) && b.bots_database_version > 0) {
|
||||||
LogInfo(
|
LogInfo(
|
||||||
"{:>8} | database [{}] binary [{}] {}",
|
"{:>8} | database [{}] binary [{}] {}",
|
||||||
"Bots",
|
"Bots",
|
||||||
@ -273,8 +273,12 @@ bool DatabaseUpdate::CheckVersions(DatabaseVersion v, DatabaseVersion b)
|
|||||||
|
|
||||||
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
|
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
|
||||||
|
|
||||||
return (v.server_database_version == b.server_database_version) &&
|
// server database version is required
|
||||||
(v.bots_database_version == b.bots_database_version);
|
bool server_up_to_date = v.server_database_version == b.server_database_version;
|
||||||
|
// bots database version is optional, if not enabled then it is always up-to-date
|
||||||
|
bool bots_up_to_date = RuleB(Bots, Enabled) ? v.bots_database_version == b.bots_database_version : true;
|
||||||
|
|
||||||
|
return server_up_to_date && bots_up_to_date;
|
||||||
}
|
}
|
||||||
|
|
||||||
// checks to see if there are pending updates
|
// checks to see if there are pending updates
|
||||||
@ -284,7 +288,7 @@ bool DatabaseUpdate::HasPendingUpdates()
|
|||||||
auto v = GetDatabaseVersions();
|
auto v = GetDatabaseVersions();
|
||||||
auto b = GetBinaryDatabaseVersions();
|
auto b = GetBinaryDatabaseVersions();
|
||||||
|
|
||||||
return !CheckVersions(v, b);
|
return !CheckVersionsUpToDate(v, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseUpdate::InjectBotsVersionColumn()
|
void DatabaseUpdate::InjectBotsVersionColumn()
|
||||||
|
|||||||
@ -30,7 +30,7 @@ public:
|
|||||||
bool HasPendingUpdates();
|
bool HasPendingUpdates();
|
||||||
private:
|
private:
|
||||||
Database *m_database;
|
Database *m_database;
|
||||||
static bool CheckVersions(DatabaseVersion v, DatabaseVersion b);
|
static bool CheckVersionsUpToDate(DatabaseVersion v, DatabaseVersion b);
|
||||||
void InjectBotsVersionColumn();
|
void InjectBotsVersionColumn();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user