ios - 备份和恢复 realm.io 数据库

标签 ios objective-c database swift realm

我需要备份我的默认 realm.io数据库并从 Dropbox 恢复它。我正在使用 Dropbox-iOS-SDK上传和下载它。当我尝试用备份替换当前数据库文件(例如 default.realm)时,RLMRealm对象在缓存中,但我无法清除该缓存,因此我无法创建数据库的新实例。

我可以重新加载 RLMRealm 对象吗?

代码如下:

    func reloadDB(fromPath: String) {
        let defaultParentPath = RLMRealm.defaultRealmPath().stringByDeletingLastPathComponent
        let dbPath = defaultParentPath.stringByAppendingPathComponent("db.realm")
        let dbLockPath = defaultParentPath.stringByAppendingPathComponent("db.realm.lock")

        NSFileManager.defaultManager().removeItemAtPath(dbPath, error: nil)
        NSFileManager.defaultManager().removeItemAtPath(dbLockPath, error: nil)

        NSFileManager.defaultManager().copyItemAtPath(fromPath, toPath: dbPath, error: nil)

        self.db = RLMRealm(path: dbPath, readOnly: false, error: nil)

        NSFileManager.defaultManager().removeItemAtPath(fromPath, error: nil)
    }

备份 Realm.io 数据库的最佳方法是什么?

最佳答案

从 Dropbox 备份和恢复 Realm 文件应该可以正常工作,因为数据库只是一个文件。但是,在删除现有 Realm 之前,您必须确保没有对现有 Realm 的任何引用。

关于ios - 备份和恢复 realm.io 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376826/

相关文章:

sql - 新手的 MySQL 查询优化和 EXPLAIN

iphone - 如何在ios上实现360度展示案例?

ios - 删除时间戳和进程 ID

javascript - WKWebView WebGL 性能低于 Safari

iphone - 为 MKMapView 设置缩放级别

iphone - 一个 View 中有多个 UIAlertView : how to create different delegates

iphone - 奇怪的 NSNotificationCenter 崩溃

iphone - 是否有必要在 iphone 中发布 NSInteger?

php - 构建 mysql 查询和/或 php 代码来关联不明确的数据点

sql - 尝试将客户添加到数据库时出错(插入语句oledb vb net中的语法错误)