gpt4 book ai didi

使用具有多个历史数据库版本的自定义映射模型的 iOS CoreData 迁移

转载 作者:行者123 更新时间:2023-11-29 10:35:37 24 4
gpt4 key购买 nike

我有一个应用程序和数据库的许多历史版本。我们的用户通常是“一年一次”的用户,因此这意味着您永远无法确定他们的应用运行的是哪个版本的数据库。

现在,在我的新版本数据库中,我需要进行一些自定义迁移。本教程中描述了我用来执行此操作的方法:http://9elements.com/io/index.php/customizing-core-data-migrations/

总结一下:我必须制作自定义映射模型,以便我可以为某些领域编写自己的迁移策略。

现在,当我创建自定义映射模型时,我必须选择源“xcdatamodel”和目标“xcdatamodel”(其中“目标”是我的数据库的新版本)。

我的问题是,如果我想从所有可能的版本进行这种自定义迁移,我是否需要创建多个自定义映射模型,所有这些模型都具有不同的来源,或者是否有更智能的方法来执行此操作?或者 CoreData 是否足够聪明以识别这一点?

最佳答案

简短的回答是肯定的;您需要测试从每个源模型到当前目标模型的每次迁移。如果该迁移需要自定义映射,那么您将需要为该对映射。

Core Data 不理解版本;它只了解来源和目的地。如果没有办法从 A 到 B,那么它将失败。如果它可以自动从 A 迁移到 B,并且您打开了该选项,那么它会。否则需要进行繁重的(手动)迁移。

请记住,繁重的迁移是非常劳动密集型的,我强烈建议避免它们。我发现导出数据(例如导出到 JSON)然后再导入数据要高效得多,然后再进行大量迁移。

关于使用具有多个历史数据库版本的自定义映射模型的 iOS CoreData 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com