refactor(DB): Handle SQL files in a new way (#11494)
* refactor(DB): Handle SQL files in a new way * remove proof that it works files * Update rev_1650721405699287200.sql * Update rev_1650721339143444200.sql * Update rev_1650721386624384400.sql * fix build * fix
This commit is contained in:
@@ -43,10 +43,6 @@ function import() {
|
|||||||
|
|
||||||
newVer=$dateToday"_"$cnt
|
newVer=$dateToday"_"$cnt
|
||||||
|
|
||||||
startTransaction="START TRANSACTION;";
|
|
||||||
updHeader="ALTER TABLE version_db_"$db" CHANGE COLUMN "$oldVer" "$newVer" bit;";
|
|
||||||
endTransaction="COMMIT;";
|
|
||||||
|
|
||||||
newFile="$updPath/"$dateToday"_"$cnt".sql"
|
newFile="$updPath/"$dateToday"_"$cnt".sql"
|
||||||
|
|
||||||
oldFile=$(basename "$entry")
|
oldFile=$(basename "$entry")
|
||||||
@@ -61,46 +57,8 @@ function import() {
|
|||||||
|
|
||||||
echo "-- DB update $oldVer -> $newVer" > "$newFile";
|
echo "-- DB update $oldVer -> $newVer" > "$newFile";
|
||||||
|
|
||||||
if [[ $isRev -eq 1 ]]; then
|
|
||||||
echo "DROP PROCEDURE IF EXISTS \`updateDb\`;" >> "$newFile";
|
|
||||||
echo "DELIMITER //" >> "$newFile";
|
|
||||||
echo "CREATE PROCEDURE updateDb ()" >> "$newFile";
|
|
||||||
echo "proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';" >> "$newFile";
|
|
||||||
echo "SELECT COUNT(*) INTO @COLEXISTS" >> "$newFile";
|
|
||||||
echo "FROM information_schema.COLUMNS" >> "$newFile";
|
|
||||||
echo "WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_"$db"' AND COLUMN_NAME = '"$oldVer"';" >> "$newFile";
|
|
||||||
echo "IF @COLEXISTS = 0 THEN LEAVE proc; END IF;" >> "$newFile";
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$startTransaction" >> "$newFile";
|
|
||||||
echo "$updHeader" >> "$newFile";
|
|
||||||
|
|
||||||
if [[ $isRev -eq 1 ]]; then
|
|
||||||
echo "SELECT sql_rev INTO OK FROM version_db_"$db" WHERE sql_rev = '$rev'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;" >> "$newFile";
|
|
||||||
fi;
|
|
||||||
|
|
||||||
echo "--" >> "$newFile";
|
|
||||||
echo "-- START UPDATING QUERIES" >> "$newFile";
|
|
||||||
echo "--" >> "$newFile";
|
|
||||||
echo "" >> "$newFile";
|
|
||||||
|
|
||||||
cat $entry >> "$newFile";
|
cat $entry >> "$newFile";
|
||||||
|
|
||||||
echo "" >> "$newFile";
|
|
||||||
echo "--" >> "$newFile";
|
|
||||||
echo "-- END UPDATING QUERIES" >> "$newFile";
|
|
||||||
echo "--" >> "$newFile";
|
|
||||||
echo "UPDATE version_db_"$db" SET date = '"$newVer"' WHERE sql_rev = '"$rev"';" >> "$newFile";
|
|
||||||
|
|
||||||
echo "$endTransaction" >> "$newFile";
|
|
||||||
|
|
||||||
if [[ $isRev -eq 1 ]]; then
|
|
||||||
echo "END //" >> "$newFile";
|
|
||||||
echo "DELIMITER ;" >> "$newFile";
|
|
||||||
echo "CALL updateDb();" >> "$newFile";
|
|
||||||
echo "DROP PROCEDURE IF EXISTS \`updateDb\`;" >> "$newFile";
|
|
||||||
fi;
|
|
||||||
|
|
||||||
currentHash="$(git log --diff-filter=A "$entry" | grep "^commit " | sed -e 's/commit //')"
|
currentHash="$(git log --diff-filter=A "$entry" | grep "^commit " | sed -e 's/commit //')"
|
||||||
|
|
||||||
if [[ "$COMMIT_HASH" != *"$currentHash"* ]]
|
if [[ "$COMMIT_HASH" != *"$currentHash"* ]]
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||||||
rev=$( $date +%s%N );
|
rev=$( $date +%s%N );
|
||||||
filename=rev_"$rev".sql
|
filename=rev_"$rev".sql
|
||||||
|
|
||||||
echo "INSERT INTO \`version_db_auth\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
echo "--" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `version_db_auth`;
|
||||||
@@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||||||
rev=$( $date +%s%N );
|
rev=$( $date +%s%N );
|
||||||
filename=rev_"$rev".sql
|
filename=rev_"$rev".sql
|
||||||
|
|
||||||
echo "INSERT INTO \`version_db_characters\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
echo "--" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `version_db_characters`;
|
||||||
@@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||||||
rev=$( $date +%s%N );
|
rev=$( $date +%s%N );
|
||||||
filename=rev_"$rev".sql
|
filename=rev_"$rev".sql
|
||||||
|
|
||||||
echo "INSERT INTO \`version_db_world\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
echo "--" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `version_db_world`;
|
||||||
@@ -583,11 +583,7 @@ public:
|
|||||||
virtual void UpdateRealmCharCount(uint32 accid) = 0;
|
virtual void UpdateRealmCharCount(uint32 accid) = 0;
|
||||||
[[nodiscard]] virtual LocaleConstant GetAvailableDbcLocale(LocaleConstant locale) const = 0;
|
[[nodiscard]] virtual LocaleConstant GetAvailableDbcLocale(LocaleConstant locale) const = 0;
|
||||||
virtual void LoadDBVersion() = 0;
|
virtual void LoadDBVersion() = 0;
|
||||||
virtual void LoadDBRevision() = 0;
|
|
||||||
[[nodiscard]] virtual char const* GetDBVersion() const = 0;
|
[[nodiscard]] virtual char const* GetDBVersion() const = 0;
|
||||||
[[nodiscard]] virtual char const* GetWorldDBRevision() const = 0;
|
|
||||||
[[nodiscard]] virtual char const* GetCharacterDBRevision() const = 0;
|
|
||||||
[[nodiscard]] virtual char const* GetAuthDBRevision() const = 0;
|
|
||||||
virtual void LoadAutobroadcasts() = 0;
|
virtual void LoadAutobroadcasts() = 0;
|
||||||
virtual void UpdateAreaDependentAuras() = 0;
|
virtual void UpdateAreaDependentAuras() = 0;
|
||||||
[[nodiscard]] virtual uint32 GetCleaningFlags() const = 0;
|
[[nodiscard]] virtual uint32 GetCleaningFlags() const = 0;
|
||||||
|
|||||||
@@ -3268,45 +3268,6 @@ void World::LoadDBVersion()
|
|||||||
m_DBVersion = "Unknown world database.";
|
m_DBVersion = "Unknown world database.";
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::LoadDBRevision()
|
|
||||||
{
|
|
||||||
QueryResult resultWorld = WorldDatabase.Query("SELECT date FROM version_db_world ORDER BY date DESC LIMIT 1");
|
|
||||||
QueryResult resultCharacter = CharacterDatabase.Query("SELECT date FROM version_db_characters ORDER BY date DESC LIMIT 1");
|
|
||||||
QueryResult resultAuth = LoginDatabase.Query("SELECT date FROM version_db_auth ORDER BY date DESC LIMIT 1");
|
|
||||||
|
|
||||||
if (resultWorld)
|
|
||||||
{
|
|
||||||
Field* fields = resultWorld->Fetch();
|
|
||||||
|
|
||||||
m_WorldDBRevision = fields[0].Get<std::string>();
|
|
||||||
}
|
|
||||||
if (resultCharacter)
|
|
||||||
{
|
|
||||||
Field* fields = resultCharacter->Fetch();
|
|
||||||
|
|
||||||
m_CharacterDBRevision = fields[0].Get<std::string>();
|
|
||||||
}
|
|
||||||
if (resultAuth)
|
|
||||||
{
|
|
||||||
Field* fields = resultAuth->Fetch();
|
|
||||||
|
|
||||||
m_AuthDBRevision = fields[0].Get<std::string>();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_WorldDBRevision.empty())
|
|
||||||
{
|
|
||||||
m_WorldDBRevision = "Unkown World Database Revision";
|
|
||||||
}
|
|
||||||
if (m_CharacterDBRevision.empty())
|
|
||||||
{
|
|
||||||
m_CharacterDBRevision = "Unkown Character Database Revision";
|
|
||||||
}
|
|
||||||
if (m_AuthDBRevision.empty())
|
|
||||||
{
|
|
||||||
m_AuthDBRevision = "Unkown Auth Database Revision";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void World::UpdateAreaDependentAuras()
|
void World::UpdateAreaDependentAuras()
|
||||||
{
|
{
|
||||||
SessionMap::const_iterator itr;
|
SessionMap::const_iterator itr;
|
||||||
|
|||||||
@@ -339,11 +339,7 @@ public:
|
|||||||
|
|
||||||
// used World DB version
|
// used World DB version
|
||||||
void LoadDBVersion() override;
|
void LoadDBVersion() override;
|
||||||
void LoadDBRevision() override;
|
|
||||||
[[nodiscard]] char const* GetDBVersion() const override { return m_DBVersion.c_str(); }
|
[[nodiscard]] char const* GetDBVersion() const override { return m_DBVersion.c_str(); }
|
||||||
[[nodiscard]] char const* GetWorldDBRevision() const override { return m_WorldDBRevision.c_str(); }
|
|
||||||
[[nodiscard]] char const* GetCharacterDBRevision() const override { return m_CharacterDBRevision.c_str(); }
|
|
||||||
[[nodiscard]] char const* GetAuthDBRevision() const override { return m_AuthDBRevision.c_str(); }
|
|
||||||
|
|
||||||
void LoadAutobroadcasts() override;
|
void LoadAutobroadcasts() override;
|
||||||
|
|
||||||
@@ -440,9 +436,6 @@ private:
|
|||||||
|
|
||||||
// used versions
|
// used versions
|
||||||
std::string m_DBVersion;
|
std::string m_DBVersion;
|
||||||
std::string m_WorldDBRevision;
|
|
||||||
std::string m_CharacterDBRevision;
|
|
||||||
std::string m_AuthDBRevision;
|
|
||||||
|
|
||||||
typedef std::map<uint8, std::string> AutobroadcastsMap;
|
typedef std::map<uint8, std::string> AutobroadcastsMap;
|
||||||
AutobroadcastsMap m_Autobroadcasts;
|
AutobroadcastsMap m_Autobroadcasts;
|
||||||
|
|||||||
@@ -213,9 +213,6 @@ public:
|
|||||||
handler->PSendSysMessage("Using %s DBC Locale as default. All available DBC locales: %s", localeNames[defaultLocale], availableLocales.c_str());
|
handler->PSendSysMessage("Using %s DBC Locale as default. All available DBC locales: %s", localeNames[defaultLocale], availableLocales.c_str());
|
||||||
|
|
||||||
handler->PSendSysMessage("Using World DB: %s", sWorld->GetDBVersion());
|
handler->PSendSysMessage("Using World DB: %s", sWorld->GetDBVersion());
|
||||||
handler->PSendSysMessage("Using World DB Revision: %s", sWorld->GetWorldDBRevision());
|
|
||||||
handler->PSendSysMessage("Using Character DB Revision: %s", sWorld->GetCharacterDBRevision());
|
|
||||||
handler->PSendSysMessage("Using Auth DB Revision: %s", sWorld->GetAuthDBRevision());
|
|
||||||
|
|
||||||
handler->PSendSysMessage("LoginDatabase queue size: %zu", LoginDatabase.QueueSize());
|
handler->PSendSysMessage("LoginDatabase queue size: %zu", LoginDatabase.QueueSize());
|
||||||
handler->PSendSysMessage("CharacterDatabase queue size: %zu", CharacterDatabase.QueueSize());
|
handler->PSendSysMessage("CharacterDatabase queue size: %zu", CharacterDatabase.QueueSize());
|
||||||
|
|||||||
@@ -478,7 +478,6 @@ bool StartDB()
|
|||||||
WorldDatabase.Execute("UPDATE version SET core_version = '{}', core_revision = '{}'", GitRevision::GetFullVersion(), GitRevision::GetHash()); // One-time query
|
WorldDatabase.Execute("UPDATE version SET core_version = '{}', core_revision = '{}'", GitRevision::GetFullVersion(), GitRevision::GetHash()); // One-time query
|
||||||
|
|
||||||
sWorld->LoadDBVersion();
|
sWorld->LoadDBVersion();
|
||||||
sWorld->LoadDBRevision();
|
|
||||||
|
|
||||||
LOG_INFO("server.loading", "> Version DB world: {}", sWorld->GetDBVersion());
|
LOG_INFO("server.loading", "> Version DB world: {}", sWorld->GetDBVersion());
|
||||||
|
|
||||||
|
|||||||
@@ -111,11 +111,7 @@ public:
|
|||||||
MOCK_METHOD(void, UpdateRealmCharCount, (uint32 accid), ());
|
MOCK_METHOD(void, UpdateRealmCharCount, (uint32 accid), ());
|
||||||
MOCK_METHOD(LocaleConstant, GetAvailableDbcLocale, (LocaleConstant locale), (const));
|
MOCK_METHOD(LocaleConstant, GetAvailableDbcLocale, (LocaleConstant locale), (const));
|
||||||
MOCK_METHOD(void, LoadDBVersion, ());
|
MOCK_METHOD(void, LoadDBVersion, ());
|
||||||
MOCK_METHOD(void, LoadDBRevision, ());
|
|
||||||
MOCK_METHOD(char const *, GetDBVersion, (), (const));
|
MOCK_METHOD(char const *, GetDBVersion, (), (const));
|
||||||
MOCK_METHOD(char const *, GetWorldDBRevision, (), (const));
|
|
||||||
MOCK_METHOD(char const *, GetCharacterDBRevision, (), (const));
|
|
||||||
MOCK_METHOD(char const *, GetAuthDBRevision, (), (const));
|
|
||||||
MOCK_METHOD(void, LoadAutobroadcasts, ());
|
MOCK_METHOD(void, LoadAutobroadcasts, ());
|
||||||
MOCK_METHOD(void, UpdateAreaDependentAuras, ());
|
MOCK_METHOD(void, UpdateAreaDependentAuras, ());
|
||||||
MOCK_METHOD(uint32, GetCleaningFlags, (), (const));
|
MOCK_METHOD(uint32, GetCleaningFlags, (), (const));
|
||||||
|
|||||||
Reference in New Issue
Block a user