FMDB 加入数据库版本信息
来源:互联网 发布:linux rws是什么意思 编辑:程序博客网 时间:2024/06/08 12:21
什么是数据库版本信息
本文所提及的数据库版本信息是指用一个版本号(形如1.0、2.0等)来标识当前数据库所有的表得结构。只要数据库表结构有变动,那么就需要用一个新的版本号去标识。
为什么需要加入数据库版本
场景:APP(v1.0.0) 数据库中有1个表 table1
APP(v1.1.0) 数据库增加一张新表,table1 、table2
APP(v1.2.0) 表table2增加新列
当APP从1.0.0直接升级到v1.2.0,数据库需要哪些操作?因为APP升级是不会清空APP原先的数据库,那么就会涉及到数据库的升级。如果没有数据库版本控制,则需要借助于APP的版本做相关处理,较为复杂。此时可以给数据库加上版本,方便数据库升级及管理。
如何加入数据库版本信息
//创建数据库版本表if (![db tableExists:@"tb_dbInfo"]) { result = [db executeUpdate:@"CREATE TABLE tb_dbInfo(version TEXT)"]; }#pragma mark 更新版本号+ (BOOL)updateVersionInfoWithString:(NSString*)version{ __block BOOL b = FALSE; DataBaseUtil *dbUnit =[DataBaseUtil unit]; [dbUnit.queue inDatabase:^(FMDatabase *db) { [db open]; b = [db executeUpdate:@"UPDATE tb_dbInfo SET version = ?",version]; [db close]; }]; return b;} #pragma mark 插入版本号+ (BOOL)insertVersionInfoWithString:(NSString*)version{ __block BOOL b = FALSE; DataBaseUtil *dbUnit =[DataBaseUtil unit]; [dbUnit.queue inDatabase:^(FMDatabase *db) { [db open]; b = [db executeUpdate:@"INSERT INTO tb_dbInfo(version)VALUES(?)",version]; [db close]; }]; return b;}#pragma mark 得到版本信息+ (NSString*)getDBInfoValue{ __block NSString * version = nil; DataBaseUtil *dbUnit =[DataBaseUtil unit]; [dbUnit.queue inDatabase:^(FMDatabase *db) { [db open]; FMResultSet* set =[db executeQuery:@"selectversion from tb_dbInfo"]; if (set) { while ([set next]) { version = [set stringForColumn:@"version"]; } } [db close]; }]; return version;}#pragma mark 创建版本信息+ (BOOL)setDBInfoValueWithString:(NSString*)string{ BOOL result = FALSE; if ([self getDBInfoValue]) { //更新版本 result = [self updateVersionInfoWithString:string]; } else { //插入版本 result =[self insertVersionInfoWithString:string]; } return result;}
如何更新数据库
+ (BOOL)updateDataBaseVersion:(NSString *)version {int intVersion =[version intValue];switch (intVersion) {case 0://创建table 1等 ,初次创建数据库所有表操作…case 1://创建 table 2…case 3://修改 table 3…}
注意:case间没有break
创建或升级数据库流程图
说明,是否第一次进入APP:
NSFileManager *manager=[NSFileManager defaultManager];
BOOL isExit = [manager fileExistsAtPath:self.dbPath]// self.dbPath数据库地址
isExit为FALSE表示第一次进入APP,TRUE表示已经创建过数据库。
0 0
- FMDB 加入数据库版本信息
- Qt程序加入版本信息
- Qt 如何把版本信息加入应用程序
- fmdb数据库
- FMDB数据库
- FMDB数据库
- 数据库fmdb
- FMDB数据库
- 数据库版本信息
- linux 内核版本中自动加入 git 版本信息
- 如何在*.CS文件中加入版本跟踪信息?
- 在*.cs文件中加入版本跟踪信息
- 跳到文件指定位置加入版本信息
- FMDB iphone数据库
- FMDB iphone 数据库
- 数据库框架:FMDB
- iphone FMDB数据库
- 数据库操作(使用FMDB)
- JavaScript高级程序设计(笔记一)
- 搭建nginx+tomcat+Java的负载均衡环境
- js 计算器
- 数位拆解 4
- 关于大型网站技术演进的思考(五):存储的瓶颈(5
- FMDB 加入数据库版本信息
- hdu acm 1281 棋盘游戏
- 使用Tcl扩展包cwind进行界面自动化测试
- 无需付费证书通过Xcode进行安装调试
- SQLServer Always On 可用性组搭建简要步骤
- 纵横字谜的答案
- 【Java学习笔记】
- java邮件解析4
- C++11 的 5 个实用特性