File tree Expand file tree Collapse file tree 4 files changed +14
-7
lines changed
UserInterface/Controllers/Home/Model Expand file tree Collapse file tree 4 files changed +14
-7
lines changed Original file line number Diff line number Diff line change @@ -261,6 +261,7 @@ extension AppDelegate {
261261 @objc func databaseCorrupted( ) {
262262 mainWindow. rootViewController = makeInitialViewController ( )
263263 }
264+
264265}
265266
266267extension AppDelegate {
Original file line number Diff line number Diff line change @@ -11,12 +11,14 @@ class DatabaseBackupJob: AsynchronousJob {
1111 override func execute( ) -> Bool {
1212 do {
1313 try UserDatabase . current. writeWithoutTransaction { _ in
14+ try DatabaseFile . removeIfExists ( . temp)
1415 try DatabaseFile . copy ( at: . original, to: . temp)
1516 }
1617 let dbQueue = try DatabaseQueue ( path: DatabaseFile . temp. db. path)
1718 try dbQueue. write { db in
1819 try db. execute ( sql: " PRAGMA integrity_check " )
1920 }
21+ try DatabaseFile . removeIfExists ( . backup)
2022 try DatabaseFile . copy ( at: . temp, to: . backup)
2123 try DatabaseFile . removeIfExists ( . temp)
2224 AppGroupUserDefaults . User. lastDatabaseBackupDate = Date ( )
Original file line number Diff line number Diff line change @@ -14,8 +14,13 @@ class DatabaseBackupManager: NSObject {
1414 guard LoginManager . shared. isLoggedIn else {
1515 return
1616 }
17- let lastDatabaseBackupDate = AppGroupUserDefaults . User. lastDatabaseBackupDate
18- if lastDatabaseBackupDate == nil || - lastDatabaseBackupDate!. timeIntervalSinceNow > TimeInterval . hour * 2 {
17+ let needsBackup : Bool
18+ if let date = AppGroupUserDefaults . User. lastDatabaseBackupDate {
19+ needsBackup = - date. timeIntervalSinceNow > TimeInterval . hour * 2
20+ } else {
21+ needsBackup = true
22+ }
23+ if needsBackup {
1924 ConcurrentJobQueue . shared. addJob ( job: DatabaseBackupJob ( ) )
2025 }
2126 }
Original file line number Diff line number Diff line change @@ -42,11 +42,10 @@ enum DatabaseFile {
4242 }
4343 }
4444
45- static func copy( at srcFile: DatabaseFile , to dstFIle: DatabaseFile ) throws {
46- try removeIfExists ( dstFIle)
47- try FileManager . default. copyItem ( at: srcFile. db, to: dstFIle. db)
48- try FileManager . default. copyItem ( at: srcFile. wal, to: dstFIle. wal)
49- try FileManager . default. copyItem ( at: srcFile. shm, to: dstFIle. shm)
45+ static func copy( at srcFile: DatabaseFile , to dstFile: DatabaseFile ) throws {
46+ try FileManager . default. copyItem ( at: srcFile. db, to: dstFile. db)
47+ try FileManager . default. copyItem ( at: srcFile. wal, to: dstFile. wal)
48+ try FileManager . default. copyItem ( at: srcFile. shm, to: dstFile. shm)
5049 }
5150
5251 static func exists( _ file: DatabaseFile ) -> Bool {
You can’t perform that action at this time.
0 commit comments