diff --git a/Delta/Database/DatabaseManager.swift b/Delta/Database/DatabaseManager.swift index 61be585..7c5054e 100644 --- a/Delta/Database/DatabaseManager.swift +++ b/Delta/Database/DatabaseManager.swift @@ -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 -