我正在开发一个使用sqlite来存储应用程序和用户数据的iphone应用程序。
这是该应用程序的第一个版本,我想知道我需要做些什么来准备应用程序的未来版本。
这够了吗? 1.确保XCode项目设置中的应用程序版本正确 2.在sqlite文件中添加版本号,以便稍后阅读
让我们模拟下一次更新! 1.新版本的应用程序已下载到设备 2.应用程序读取先前存储在sqlite表/字段中的版本号 3.应用程序知道应用程序数据已更改,因此需要更新sqlite 它希望保留用户数据(在app收藏夹和便笺中)。 4. Schema没有改变,因此它开始将新的应用程序数据插入到某些表中。 5.它不接触用户数据表 6.它更新sqlite db的版本号。
我是否遗漏了一些会在需要更新时回来并咬我的东西?
答案 0 :(得分:4)
因此,当您开发使用Core Data的应用程序时,您开始定义核心数据模型。每个型号都有自己的版本。您开始创建模型的第一个和唯一版本。您可以在official Apple Core Data Model Versioning and Data Migration Programming Guide
找到所有必需的详细信息您不应该通过数据库本身设置的自定义字段处理数据库版本控制,而是通过Xcode项目使用模型版本。
更新应用程序时,如果不更改模型版本,则无需担心任何事情,因为尚未触及数据库。每次不更改模型的新更新都不需要您。
如果您需要更新模型以进行下一次更新,则必须执行以下操作:
这是有趣的部分。您的应用程序将以两种不同的方式处理模型之间的迁移:简单方法和困难方式。
根据Apple关于Core Data Model Versioning and Data Migration的官方文档,如果您的模型稍有更改,您可以要求应用程序执行自动轻量级迁移。如果满足以下要求,此步骤将将现有数据库更新为新版本:
轻量级迁移过程将处理从一个模型版本迁移到另一个模型版本的适当所需步骤(如果可能)
如果无法执行自动轻量级迁移,则必须手动定义要更新的步骤 使用Mapping Model Objects的新版本的模型版本。这些对象将定义应用程序从模型版本 x 迁移到模型版本 y 时必须执行的操作。