【发布时间】:2015-03-31 19:24:09
【问题描述】:
我需要备份我的默认 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 数据库的最佳方法是什么?
【问题讨论】:
标签: ios objective-c database swift realm