我即将承担转换我的生活(即已经在应用程序商店数年)应用程序从可转换到二进制数据存储在核心数据图像的艰巨项目。
我有很多用户,他们的数据库非常大,存储了大量的图像。这确实减慢了备份/还原过程,并且可能还导致了其他一些幕后问题。当我几年前这样设置的时候,我不知道它有多好。
我怎样才能完成这个过程,从而不丢失客户的任何一张图像?如果只有我和我自己的数据,我相信我能让事情运转起来。但我想确保一步一步地做得很好,我知道这个社区可以在这个领域提供很大的帮助。我真的不知道从哪里开始使用现有的图像
基本上,我在寻找可以采取的步骤,这样就不会错过一个节拍。2)在此过程中的一般建议、警告等。当这个版本上线时,我真的需要一个干净的迁移。
提前感谢任何可以帮助的人。
一个建议:不要使用"允许外部存储",特别是如果你计划在未来使用iCloud与Core Data同步。参考:http://www.objc.io/issue-10/icloud-core-data.html
相反,您可能想要考虑将图像移动到它们自己的文件中,并将URL保存到数据库中的这些文件中。您必须弄清楚如何最好地进行迁移:如果您沿着这条路走下去,轻量级迁移可能不是一个选择。可转换数据类型实际上只是隐藏在一些附加元数据下的二进制数据。您是否在现有存储上测试过简单的轻量级迁移?我怀疑迁移会起作用,并将现有数据留在存储中。
如果你想让现有的二进制数据实际上移出SQLite文件,那么你正在寻找一些更复杂的东西。
大量的迁移可以达到你想要的效果,但是如果商店很大,它可能会花费很长时间,并且可能无法提供足够的反馈来获得良好的用户体验。我个人不会在IOS上使用大量的迁移,但它会实现你的目标。
导出/导入也可以。当轻量级迁移无法工作时,我通常推荐导出/导入。它涉及的代码量适中,但最终你拥有代码,了解整个过程,并可以根据你的确切需求进行调整。