【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)

}

相关推荐
梁萌1 分钟前
保姆级的MySQL执行计划(Explain)解读
数据库·mysql·explain·执行计划
JIngJaneIL3 分钟前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
+VX:Fegn089519 分钟前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
智行众维36 分钟前
【用户心得】SCANeR™Studio学习笔记(六):人因工程Pack——一站式搞定驾驶模拟的多模态数据同步
笔记·学习·自动驾驶·汽车·仿真·scaner·人因工程
xian_wwq1 小时前
【学习笔记】基于人工智能的火电机组全局性能一体化优化研究
人工智能·笔记·学习·火电
阿蒙Amon1 小时前
JavaScript学习笔记:6.表达式和运算符
javascript·笔记·学习
杨云龙UP1 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql
大筒木老辈子2 小时前
C++笔记---并发支持库(atomic)
java·c++·笔记
Cricyta Sevina2 小时前
Java Collection 集合进阶知识笔记
java·笔记·python·collection集合
黄俊懿2 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——开启全局事务
java·数据库·spring·spring cloud·微服务·架构·架构师