加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在iPhone应用程序升级部署sqlite DB

发布时间:2020-12-14 19:48:38 所属栏目:百科 来源:网络整理
导读:我在iPhone应用程序中使用sqlite作为数据源.我有两个关于应用程序升级的问题. 数据是全部配置/非事务性的.意思是它是唯读的.当我更新/添加配置数据时,我会为应用程序发布升级.当用户获得更新的iPhone应用程序时,原来是否被卸载?如果是这样,我可以确定,因为
我在iPhone应用程序中使用sqlite作为数据源.我有两个关于应用程序升级的问题.

数据是全部配置/非事务性的.意思是它是唯读的.当我更新/添加配置数据时,我会为应用程序发布升级.当用户获得更新的iPhone应用程序时,原来是否被卸载?如果是这样,我可以确定,因为新的数据库配置数据将被部署.如果不是这样,怎么替换数据?

2.)数据是配置和事务.意思是用户可以将数据保存到数据库中.当用户升级到新版本的应用程序时,我想维护其现有数据,但是替换所有配置数据.我猜想我需要在应用程序中存储INSERT和UPDATE脚本来完成此操作.什么是有效的方法呢?

解决方法

cdespinosa已经描述了情景1,所以我会解决#2.

我还没有在iPhone上做到这一点,但是在桌面环境下,最简单的方法是将配置数据保存在一个单独的数据库中.您可以轻松地附加到多个数据库.首先打开你的主数据库,这可能是可以改变的数据库.然后sqlite3_exec一个ATTACH语句,看起来像这样:

ATTACH 'filepath' AS config;

从那时起,你可以这样做:

SELECT * FROM UserTableName;
SELECT * FROM config.ConfigurationTableName;

我的理解是,如果您写入配置数据库,应用程序将失败签名检查,并且不会启动,并且iPhone附带的SQLite版本已经足够旧,不支持只读标志.因此,您应将配置数据库文件复制到沙箱中,并打开该副本,而不是将其复制到捆绑包中.

(您当然可以使用SQL并将值从一个数据库复制到另一个数据库,但是如果您已经将整个配置数据库复制到了沙盒中,那么这应该是一个额外的步骤.只要附上.)

我希望别人能为你提供更多的细节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读