美文网首页
【SQLite3数据库】数据库迁移问题

【SQLite3数据库】数据库迁移问题

作者: masuyan | 来源:发表于2017-06-28 17:10 被阅读114次

    数据库迁移

    什么是数据迁移?

    数据库表结构发生了改变,或新增了表,app更新的时候,这些变化需要更新到新的app中

    问题解决:

    我自己弄了个 备份数据库,数据迁移到备份数据库,新表结构创建后,把备份中的数据,写入到新数据库中。
    sqlite 它是文件型数据库,直接用代码可以拷贝一份他的db
    一个db文件就是整个数据库了

    屏幕快照 2017-06-28 下午5.00.11.png

    我做了一个宏定义#define APP_DB_NEW_VERSION_NUMBER 1 ,NSUserDefault里存它的值,如果数据结构不变,宏定义的值不变;如果数据结构发生变化,宏定义的值会+1,每次比较两个值:
    A:如果两个值一样,就不做迁移处理;
    B:如果宏定义的值比NSUserDefault大,就执行一下操作,操作步骤:
    1.拷贝数据库文件
    2.打开已经拷贝好的备份数据库
    3.关闭原有数据库
    4.删除原有db文件
    5.创建新的db文件,并打开
    6.开始迁移数据
    7.关闭备份数据库
    8.删除备份数据库
    9.宏定义的值存到NSUserDefault里;

    创建数据库和表

    用sqlite,他就会生成一个db文件,一个db就是一个数据库,所以先创建db,db里建table,如果一个db中创建多个table,可以把创建每个table的sql语句放在plist文件中。如下所示:

    ![5W6NIOZ2Z%YGK4@M2SDSS.jpg](https://img.haomeiwen.com/i2607623/251664f65bbedd59.jpg?imageMogr2/auto-

    思考

    appstore中,存在A app 1.1.1版本
    A app 1.1.2版本 ,数据结构发生了变化,上传appstore
    手机上A app 现有1.1.1版本,去app store上更新A app 1.1.2, 没有数据迁移会怎样????

    appStore更新和Xcode覆盖运行是一样的,
    卸载(整个数据库都重新建了,肯定是新的结构了)重新下载

    相关文章

      网友评论

          本文标题:【SQLite3数据库】数据库迁移问题

          本文链接:https://www.haomeiwen.com/subject/iceucxtx.html