diff --git a/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp b/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/DatabaseManager.cpp @@ -37,10 +37,16 @@ const DatabaseQueryExecutor &DatabaseManager::getQueryExecutor() { thread_local SQLiteQueryExecutor instance(DatabaseManager::connectionManager); - // creating an instance means that migration code was executed - // and finished without error and database is workable + // Creating an instance means the migration code was executed and finished + // without error, and the database is workable. We also want to start + // monitoring logs when this device should handle backup. std::call_once(DatabaseManager::queryExecutorCreationIndicated, []() { DatabaseManager::indicateQueryExecutorCreation(); + std::string currentBackupID = instance.getMetadata("backupID"); + if (!ServicesUtils::fullBackupSupport || !currentBackupID.size()) { + return; + } + DatabaseManager::connectionManager->setLogsMonitoring(true); }); return instance; } diff --git a/native/cpp/CommonCpp/DatabaseManagers/NativeSQLiteConnectionManager.cpp b/native/cpp/CommonCpp/DatabaseManagers/NativeSQLiteConnectionManager.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/NativeSQLiteConnectionManager.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/NativeSQLiteConnectionManager.cpp @@ -251,7 +251,8 @@ return false; } - persistLog(backupID, logID, patchsetPtr, patchsetSize, this->backupDataKey); + persistLog( + backupID, logID, patchsetPtr, patchsetSize, this->backupLogDataKey); sqlite3_free(patchsetPtr); // The session is not "zeroed" after capturing log. diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp @@ -66,11 +66,6 @@ std::shared_ptr connectionManager) : connectionManager(std::move(connectionManager)) { this->migrate(); - std::string currentBackupID = this->getMetadata("backupID"); - if (!ServicesUtils::fullBackupSupport || !currentBackupID.size()) { - return; - } - SQLiteQueryExecutor::connectionManager->setLogsMonitoring(true); } #else