我想制作我的 Core Data 数据库的备份副本,而不使用文件管理器来制作 sqlite 文件的副本,或者使用 Persistent Store Coordinator 的 migratePersistentStore 方法(原因太长,无法在此处解释)。我想要做的是用与原始文件相同的 MOMD 打开一个新的持久存储,创建一个新的托管对象上下文,然后遍历我的数据库中的所有对象并将它们插入到新的上下文中。
这适用于简单实体,但问题是我的模型有大约 20 个实体,其中许多实体具有一对多和多对多的关系。稍微复杂一点的解决方案是将每个对象插入到新的 MOC 中,然后将所有新的托管对象保存在内存中,并使用它们在后续传递中绑定对象之间的所有关系。但这似乎是一个非常混乱的解决方案。
是否有一种干净、优雅的方式来实现这一点,它可能适用于任何类型的数据模型,而不仅仅是我自己的模型的定制解决方案,而且不必同时将每个对象都保存在内存中?
谢谢。