Swift Realm备份和还原领域数据

时间:2019-10-14 17:59:56

标签: swift realm backup restore migrate

我当前正在创建两个函数,这些函数将领域文件备份到备份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。

谢谢。

0 个答案:

没有答案