我需要备份默认的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数据库的最佳方法是什么?
从数据库备份和还原Realm文件应该可以正常工作,因为数据库只是一个文件。但是,您必须确保在删除现有域之前没有任何引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句