diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-01-30 15:50:35 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-30 15:50:35 +0100 |
commit | b79a91039bba12d62e43806d8a20ad76107ac5d7 (patch) | |
tree | b13b51d01550e9adb6f5ee2a09229fb2215cedf0 /src | |
parent | 9a0a56dc884c7b52fd6c9781e1884ec2aaec1343 (diff) |
Core/DBUpdater: Apply each sql update file in a separate transaction
Diffstat (limited to 'src')
-rw-r--r-- | src/server/database/Updater/DBUpdater.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/database/Updater/DBUpdater.cpp b/src/server/database/Updater/DBUpdater.cpp index 3b9f7617a64..90001bc19e4 100644 --- a/src/server/database/Updater/DBUpdater.cpp +++ b/src/server/database/Updater/DBUpdater.cpp @@ -364,7 +364,7 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos Path const& path) { std::vector<std::string> args; - args.reserve(7); + args.reserve(9); // CLI Client connection info args.emplace_back("-h" + host); @@ -414,13 +414,17 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos #endif + // Execute sql file + args.emplace_back("-e"); + args.emplace_back(Trinity::StringFormat("BEGIN; SOURCE %s; COMMIT;", path.generic_string().c_str())); + // Database if (!database.empty()) args.emplace_back(database); // Invokes a mysql process which doesn't leak credentials to logs int const ret = Trinity::StartProcess(DBUpdaterUtil::GetCorrectedMySQLExecutable(), args, - "sql.updates", path.generic_string(), true); + "sql.updates", "", true); if (ret != EXIT_SUCCESS) { |