我当前正在创建两个函数,这些函数将领域文件备份到备份URL上,并在需要时将其还原。
这是为了防止将应用程序与Realm一起使用时防止丢失数据。
例如:
Backup URL: .../user1-server-backup.realm
Restore URL: .../user1-server.realm
备份功能会将还原URL上的领域文件复制到 备用网址。
还原功能将备份URL上的领域文件迁移到 恢复网址。
我已经使用writeCopy函数创建了备份功能。
class func backupLocalStore(storeBackupDirectoryURL: URL) -> Bool {
let user = CSDefaults.curEmail.replacingOccurrences(of: "@", with: "")
let sAp = CSDefaults.getPassAndServerFrom(email: user)
let prefix = sAp.1.components(separatedBy: ".")[0]
let file = "\(user)-\(prefix)-backup.realm"
let backupURL = Realm.Configuration().fileURL?.deletingLastPathComponent().appendingPathComponent(file)
// To be implemented
// Optionally wrap in a write transaction to
// prevent other changes happening
realm.beginWrite()
do {
try realm.writeCopy(toFile: backupURL!)
} catch {
// Error backing up data
return false
}
realm.cancelWrite()
return true
}
现在,我要使用还原功能,将备份URL上的领域文件迁移到还原URL。
我不知道如何使用正确的迁移块来创建此功能,以便该应用程序可以正确处理备份文件。
我正在使用Swift 5和CocoaPod RealmSwift 3.17.3。
谢谢。