很少有客户报告核心数据迁移后,他们的数据库条目结果重复。
我们打开了他们发送给我们的数据库,实际上条目是重复的。我们恢复备份并再次转换数据库,但我们无法在办公室重现该问题。迁移工作正常。
这种重复的原因是什么?它与模型的结构有关,还是其他什么?
这是使用模型映射的轻量级迁移。核心数据库基于mysql。
感谢
答案 0 :(得分:3)
经过一段时间的斗争后,解决方案对我们来说非常明显。因为它偶尔会发生非常所以很难找到一个复制品(甚至更难找到原因!)。
似乎应用程序有时会在迁移过程中崩溃(原因不明)。
我们正在使用destinationURL
-[NSMigrationManager migrateStoreFromURL:...]
中的appdata.sqlite-model_version_2.3
确定性文件名,例如NSMigrationManager
。我们在迁移之前没有检查目的地是否存在,并且-[NSFileManager removeItemAtPath:error:]
无论如何都会直接复制到目标中。因此我们会从第一次(崩溃)尝试中获得每个实体的重复项,并且之后的一切单打。
在尝试迁移以清除之前的任何失败迁移之前,对.sqlite
,.sqlite-shm
和.sqlite-wal
的{{1}}次调用已经解决了我们的问题。