【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 小时前
Java 复习笔记
java·开发语言·笔记
luckys.one4 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
言之。5 小时前
Django中的软删除
数据库·django·sqlite
汇能感知6 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun6 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao6 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾7 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
阿里嘎多哈基米7 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
抠脚学代码7 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
jakeswang7 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql