Lock databases during backup export.

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

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

Loading…
Cancel
Save