我需要备份我的默认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数据库的最佳方法是什么?
答案 0 :(得分:1)
从dropbox备份和恢复Realm文件应该可以正常工作,因为数据库只是一个文件。但是,在删除之前,您必须确保没有对现有领域的任何引用。