ios 資料庫更新升級方案

來源:互聯網
上載者:User

標籤:

我們常使用fmdb或者其他方式建立sqlite資料庫,但是由於版本迭代問題,常常有需求要更新資料庫,比如加欄位、刪除、修改欄位等等,怎麼樣才能升級資料庫且保持原來存的資料有效呢,上代碼:

const static NSInteger FAMILY_LIST_DB_MANAGER_VER = 1;@implementation KSFamilyListDBManager{    DBManager *_dbMgr;}+ (instancetype)sharedManager{    static KSFamilyListDBManager *s_instance = nil;    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        s_instance = [[KSFamilyListDBManager alloc] init];    });    return s_instance;}- (id)init {    self = [super init];    if (self) {        _dbMgr = [DBManager defaultMgr];                [self createTables];                // 升級操作        NSInteger ver = [[ConfigDBManager sharedManager] familyListDBManagerVersion];        if (ver < 1) {            [[ConfigDBManager sharedManager] setFamilyListDBManagerVersion:FAMILY_LIST_DB_MANAGER_VER];        } else if (ver < FAMILY_LIST_DB_MANAGER_VER) {            [self upgrade];        }    }    return self;}- (void)upgrade {    //擷取儲存好的原版本號碼    NSInteger oldVersionNum = [[ConfigDBManager sharedManager] familyListDBManagerVersion];    if (FAMILY_LIST_DB_MANAGER_VER <= oldVersionNum || oldVersionNum == 0) {        return;    }        //升級    [self upgrade:oldVersionNum];        // 儲存新的版本號碼到庫中 -這裡大家可以使用NSUserDefault儲存    [[ConfigDBManager sharedManager] setFamilyListDBManagerVersion:FAMILY_LIST_DB_MANAGER_VER];}- (void)upgrade:(NSInteger)oldVersion {    if (oldVersion >= FAMILY_LIST_DB_MANAGER_VER) {        return;    }    switch (oldVersion) {        case 0:            break;        case 1:            [self upgradeFrom1To2];            break;        case 2:            break;        default:            break;    }    oldVersion ++;        // 遞迴判斷是否需要升級    [self upgrade:oldVersion];}- (void)upgradeFrom1To2 {    //這裡執行Sql語句 執行版本1到版本2的更新}


ios 資料庫更新升級方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.