Lock databases during backup export.

pull/1/head
Matthew Chen 7 years ago
parent b77382f99c
commit cb4b44b8f4

@ -188,16 +188,22 @@ NS_ASSUME_NONNULL_BEGIN
backupDirPath:backupDirPath]) {
return;
}
if (![self copyDirectory:OWSFileSystem.appDocumentDirectoryPath
dstDirName:@"appDocumentDirectoryPath"
backupDirPath:backupDirPath]) {
return;
}
if (![self copyDirectory:OWSFileSystem.appSharedDataDirectoryPath
dstDirName:@"appSharedDataDirectoryPath"
backupDirPath:backupDirPath]) {
return;
}
// Use a read/write transaction to acquire a file lock on the database files.
//
// TODO: If we use multiple database files, lock them too.
[TSStorageManager.sharedManager.newDatabaseConnection
readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
if (![self copyDirectory:OWSFileSystem.appDocumentDirectoryPath
dstDirName:@"appDocumentDirectoryPath"
backupDirPath:backupDirPath]) {
return;
}
if (![self copyDirectory:OWSFileSystem.appSharedDataDirectoryPath
dstDirName:@"appSharedDataDirectoryPath"
backupDirPath:backupDirPath]) {
return;
}
}];
if (![self zipDirectory:backupDirPath dstFilePath:backupZipPath]) {
return;
}

Loading…
Cancel
Save