数据迁移失败如何补救?

How to remedy data migration failure?

iOS应用升级到新版本时数据迁移失败怎么办?既然App真的升级了,是不是意味着用户的数据就永远丢失了?用户、应用程序的开发者或应用程序可以采取任何措施取回保存在旧模式中的数据吗?

我理解 App 开发者应该尽一切可能避免这种情况发生。但是软件很容易出错,我不敢相信它从来没有发生过。在那些情况下,人们是如何处理的?

我问这个是因为我正在编写一个具有复杂数据模式的应用程序。我希望在数据模式首次发布后对其进行相当多的更改。最好知道如果发生这种情况我能做什么。

我还考虑在应用程序中提供一个功能,将数据导出到应用程序特定格式的文本文件,它使用高级描述语言并适用于不同版本的应用程序。但问题是 iOS 升级自动发生,用户不知道何时发生并导出数据。

由开发人员定义可持续的数据迁移过程。 应根据开发人员所做的更改类型采取方法。

如果添加了一些新的属性、实体或关系,或者更改了它们的某些属性,只需提供新的模型版本就足够了。开发者应确保在迁移后满足所有要求的关系。

如果你重命名关系,或删除关系,例如一对一关系以使其成为一对多关系,这种更改很可能容易出错。在这种情况下,在新的应用程序版本中,开发人员应该创建另一个适用于新架构的数据库,并将旧架构中的所有数据以新格式复制到其中。

这样即使 Xcode 在升级时也能正常工作。例如,您可以通过~/Library/Developer/Xcode/iOS Device Logs路径找到iOS个设备日志的数据库,每个数据库名称中都有Xcode个应用程序版本。 Xcode 将以前的数据库迁移到新的数据库,而不原位迁移以前的数据库。