我目前正处于完成渐进式核心数据迁移的边缘,我遇到了一些问题:
1)如何期望使用函数createRelationshipsForDestinationInstance:entityMapping:manager:error:成功地迁移关系?苹果是希望开发者知道他们在查询什么,然后重新建立关系,还是有更优雅的方式?
2)我注意到问题1中提到的函数并不总是被调用。当我从版本1迁移到版本2时,它没有被调用,但是当我试图从版本1迁移到版本3时,它确实被调用了。为什么呢?我认为这个函数在每个endInstanceCreationForEntityMapping结束时被调用:manager:错误:?
3)我直接关注迁移多对多关系,因为它存储在一个单独的表中。迁移管理器如何处理这个问题?这不是另一个例子吧?
作为参考,这是我正在试验的所有迁移东西的项目:https://github.com/sdwornik/ECD-Migration
请随意使用它!:)
-
您将获得传入的目标实体。从那里您可以找到源实体。您也可以使用
-sourceInstancesForEntityMappingNamed: destinationInstances:
-
v1到v2的迁移工作吗?
-
它将以相同的方式对待所有关系,您需要在迁移过程中重新创建它们。
- 我尝试使用该函数,但无法对与该实体关联的关系进行错误处理。这是上下文问题吗?
您是否实现了在新上下文中创建对象的方法?如果不是,为什么不呢?如果是,请考虑将其存储在迁移管理器的-userInfo
中,以便以后可以访问它。
- 在一定程度上起作用。它与属性迁移一起工作,但是关系没有被迁移。
关系被迁移了吗?我怀疑你的映射模型正在为你做这项工作。
- 所以我想我必须重新分配每个关系,每次我做自定义迁移?
映射模型无法处理的所有关系;是的。