iOS开发如何设置sqlite版本升级

最近开发的软件涉及到sqlite版本升级问题即修改数据结构

处理app升级之后sqlite数据机构的改变主要有以下三种方法

第一种方法:直接判断数据库中的要改变数据结构的table是否存在要修改或者要删除或者要添加的字段,接下来改修改的修改、改删除的删除、改添加的添加(不建议);

第二种方法:在app本地存储sqlite数据库的版本,根据版本号判断,改修改的修改、改删除的删除、改添加的添加(不建议);

第三种方法:直接使用fmdb第三方库;

第四种方法:直接设置sqlite数据库的版本(也是我使用的方法),代码如下:

打开数据库之后:读取sqlite版本号

+(int)queryUserVersion: (sqlite3*) db {

    // get current database version of schema

    static sqlite3_stmt *stmt_version;

    int databaseVersion;

    if(sqlite3_prepare_v2(db, "PRAGMA user_version;", -1, &stmt_version, NULL) == SQLITE_OK) {

        while(sqlite3_step(stmt_version) == SQLITE_ROW) {

            databaseVersion = sqlite3_column_int(stmt_version, 0);

            DebugLog(@"version %d", databaseVersion);

        }

//        DebugLog(@"the databaseVersion is: %d", databaseVersion);

    } else {

        DebugLog(@"ERROR Preparing: , %s", sqlite3_errmsg(db) );

    }

    sqlite3_finalize(stmt_version);

    return databaseVersion;

}

然后将升级版的app的sqlite数据库版本与之前的进行比较,接下来该修改的修改、改删除的删除、改添加的添加。

以上操作完成之后在设置给sqite数据库设置心的版本号,一下是设置数据库版本号的代码

char *errorMsg = NULL;

            if (sqlite3_exec(_db, [tString1 UTF8String], nil, nil, &errorMsg)!= SQLITE_OK) {

                DebugLog(@"%s" , errorMsg);

            }

以上若有不正确之处,欢迎指正
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值