Backs up Database folder on first launch

Allows beta testers to recover data while testing Harmony syncing if something goes wrong
This commit is contained in:
Riley Testut 2019-02-01 13:02:16 -08:00
parent 4bbfee5e8f
commit 708ebb1a7f

View File

@ -85,13 +85,25 @@ extension DatabaseManager
{
guard !self.isStarted else { return }
self.loadPersistentStores { (description, error) in
guard error == nil else { return completionHandler(error) }
self.prepareDatabase {
self.isStarted = true
completionHandler(nil)
do
{
if !FileManager.default.fileExists(atPath: DatabaseManager.backupDirectoryURL.path)
{
try FileManager.default.copyItem(at: DatabaseManager.defaultDirectoryURL(), to: DatabaseManager.backupDirectoryURL)
}
self.loadPersistentStores { (description, error) in
guard error == nil else { return completionHandler(error) }
self.prepareDatabase {
self.isStarted = true
completionHandler(nil)
}
}
}
catch
{
completionHandler(error)
}
}
}
@ -505,6 +517,12 @@ extension DatabaseManager
let artworkURL = gameURL.deletingPathExtension().appendingPathExtension("jpg")
return artworkURL
}
class var backupDirectoryURL: URL
{
let backupDirectoryURL = FileManager.default.documentsDirectory.appendingPathComponent("Database-Backup")
return backupDirectoryURL
}
}
//MARK: - Notifications -