App版本不升级时,又想即时更新本地数据库怎么办?
办法一:直接从服务器下载最新的sqlite数据库替换掉本地的
具体逻辑
1、首先本地数据库里一定要有一个字段(名字自己取)
比如dbVersion,可用数字(比如1或字符串1.0.0)存储,记录当前数据库的版本
2、访问服务器
服务器同样也有一个属性dbVersion2记录最新版本的“App的本地数据库”,以及最新版本的数据库sqlite文件
判断,如果dbVersion2>dbVersion
则下载sqlite数据库文件替换掉
换掉过程注意保留用户数据哦!!!
关于数据库的替换步骤可参考前几篇的“【iOS(swift)笔记-11】App版本升级时本地数据库sqlite更新逻辑”,只是差异在于
“源文件”也就是新下载的数据库,是下载到了沙盒里,所以源文件的路径要改向沙盒。
static let db2Name = "db2.db" // 网络下载的数据库
let dbURL: URL
if !isDownload {
// 数据库源文件,放到了项目的资源根目录下(与Info.plist同级)
dbURL = URL(fileURLWithPath: Bundle.main.path(forResource: Config.dbName, ofType: "db")!)
}
else {
// 在沙盒中路径
dbURL = sandURL(filename: Config.db2Name)
}