File tree 4 files changed +14
-7
lines changed
UserInterface/Controllers/Home/Model
4 files changed +14
-7
lines changed Original file line number Diff line number Diff line change @@ -261,6 +261,7 @@ extension AppDelegate {
261
261
@objc func databaseCorrupted( ) {
262
262
mainWindow. rootViewController = makeInitialViewController ( )
263
263
}
264
+
264
265
}
265
266
266
267
extension AppDelegate {
Original file line number Diff line number Diff line change @@ -11,12 +11,14 @@ class DatabaseBackupJob: AsynchronousJob {
11
11
override func execute( ) -> Bool {
12
12
do {
13
13
try UserDatabase . current. writeWithoutTransaction { _ in
14
+ try DatabaseFile . removeIfExists ( . temp)
14
15
try DatabaseFile . copy ( at: . original, to: . temp)
15
16
}
16
17
let dbQueue = try DatabaseQueue ( path: DatabaseFile . temp. db. path)
17
18
try dbQueue. write { db in
18
19
try db. execute ( sql: " PRAGMA integrity_check " )
19
20
}
21
+ try DatabaseFile . removeIfExists ( . backup)
20
22
try DatabaseFile . copy ( at: . temp, to: . backup)
21
23
try DatabaseFile . removeIfExists ( . temp)
22
24
AppGroupUserDefaults . User. lastDatabaseBackupDate = Date ( )
Original file line number Diff line number Diff line change @@ -14,8 +14,13 @@ class DatabaseBackupManager: NSObject {
14
14
guard LoginManager . shared. isLoggedIn else {
15
15
return
16
16
}
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 {
19
24
ConcurrentJobQueue . shared. addJob ( job: DatabaseBackupJob ( ) )
20
25
}
21
26
}
Original file line number Diff line number Diff line change @@ -42,11 +42,10 @@ enum DatabaseFile {
42
42
}
43
43
}
44
44
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)
50
49
}
51
50
52
51
static func exists( _ file: DatabaseFile ) -> Bool {
You can’t perform that action at this time.
0 commit comments