【iOS(swift)笔记-13】App版本不升级时本地数据库sqlite更新逻辑一

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)

}

相关推荐
UQWRJ1 小时前
菜鸟教程R语言一二章阅读笔记
开发语言·笔记·r语言
柊二三2 小时前
XML的简略知识点
xml·数据库·oracle
YGY Webgis糕手之路4 小时前
OpenLayers 综合案例-轨迹回放
前端·经验分享·笔记·vue·web
每天敲200行代码4 小时前
MySQL 事务管理
数据库·mysql·事务
巴里巴气5 小时前
MongoDB索引及其原理
数据库·mongodb
遇见尚硅谷5 小时前
C语言:*p++与p++有何区别
c语言·开发语言·笔记·学习·算法
程序员勋勋15 小时前
Redis的String数据类型底层实现
数据库·redis·缓存
不修×蝙蝠6 小时前
MySQL 全详解:从入门到精通的实战指南
数据库·mysql·索引·最左前缀
老虎06276 小时前
JavaWeb(苍穹外卖)--学习笔记13(微信小程序开发,缓存菜品,Spring Cache)
笔记·学习·微信小程序
我的ID配享太庙呀7 小时前
Django 科普介绍:从入门到了解其核心魅力
数据库·后端·python·mysql·django·sqlite