备份和恢复realm.io数据库

时间:2015-03-31 19:24:10

标签: 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数据库的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

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