aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Updater/DBUpdater.cpp
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2015-04-04 23:59:28 +0200
committerNaios <naios-dev@live.de>2015-04-05 00:23:12 +0200
commitde490674ff1205d908301b94f5644247562b43cb (patch)
treea94da802bf54a449ac9e228290586bfaabb74b26 /src/server/shared/Updater/DBUpdater.cpp
parent85d6ff9570869bce368e9bbcf881755c6c89cb55 (diff)
Core/DBUpdater: Exit clean if a query failed to apply.
* Fix some \W4 warnings about constructors.
Diffstat (limited to 'src/server/shared/Updater/DBUpdater.cpp')
-rw-r--r--src/server/shared/Updater/DBUpdater.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/server/shared/Updater/DBUpdater.cpp b/src/server/shared/Updater/DBUpdater.cpp
index 5918fe06b55..e5c571e4517 100644
--- a/src/server/shared/Updater/DBUpdater.cpp
+++ b/src/server/shared/Updater/DBUpdater.cpp
@@ -239,11 +239,19 @@ bool DBUpdater<T>::Update(DatabaseWorkerPool<T>& pool)
[&](Path const& file) { DBUpdater<T>::ApplyFile(pool, file); },
[&](std::string const& query) -> QueryResult { return DBUpdater<T>::Retrieve(pool, query); });
- uint32 const count = updateFetcher.Update(
- sConfigMgr->GetBoolDefault("Updates.Redundancy", true),
- sConfigMgr->GetBoolDefault("Updates.AllowRehash", true),
- sConfigMgr->GetBoolDefault("Updates.ArchivedRedundancy", false),
- sConfigMgr->GetIntDefault("Updates.CleanDeadRefMaxCount", 3));
+ uint32 count;
+ try
+ {
+ count = updateFetcher.Update(
+ sConfigMgr->GetBoolDefault("Updates.Redundancy", true),
+ sConfigMgr->GetBoolDefault("Updates.AllowRehash", true),
+ sConfigMgr->GetBoolDefault("Updates.ArchivedRedundancy", false),
+ sConfigMgr->GetIntDefault("Updates.CleanDeadRefMaxCount", 3));
+ }
+ catch (UpdateException&)
+ {
+ return false;
+ }
if (!count)
TC_LOG_INFO("sql.updates", ">> %s database is up-to-date!", DBUpdater<T>::GetTableName().c_str());
@@ -298,7 +306,14 @@ bool DBUpdater<T>::Populate(DatabaseWorkerPool<T>& pool)
// Update database
TC_LOG_INFO("sql.updates", ">> Applying \'%s\'...", base.generic_string().c_str());
- ApplyFile(pool, base);
+ try
+ {
+ ApplyFile(pool, base);
+ }
+ catch (UpdateException&)
+ {
+ return false;
+ }
TC_LOG_INFO("sql.updates", ">> Done!");
return true;