2014-10-10 165 views
0

报告的核心数据迁移数量很少,其数据库条目结果重复。核心数据:数据库迁移导致重复数据库

我们打开了他们发送给我们的数据库,实际上这些条目是重复的。我们恢复备份并再次转换数据库,但我们无法在办公室重现问题。迁移正常。

可能是这种重复的原因是什么?它与模型的结构或其他相关?

这是一个使用模型映射的轻量级迁移。核心数据库基于mysql。

感谢

+0

你不知道它是如何迁移的或者它是从哪里迁移的。你在找一位先知吗? – 2014-10-10 18:12:56

+0

@ElTomato我希望我能找到一位先知。我已将它添加到问题中。 – aneuryzm 2014-10-12 09:15:07

回答

3

争夺这一段时间后,该解决方案对我们来说是很明显的。因为它偶尔会发生所以很难找到repro(甚至更难找到原因!)。

这似乎应用程序有时会中途迁移(原因不明)。

我们使用destinationURL-[NSMigrationManager migrateStoreFromURL:...]的确定性文件名,如appdata.sqlite-model_version_2.3。我们在迁移之前没有检查目标的存在,并且NSMigrationManager会直接复制到它,无论如何,我们会从第一次(崩溃)尝试中获得每个实体的重复项,然后单击之后的所有项。

几个-[NSFileManager removeItemAtPath:error:]要求.sqlite,.sqlite-shm.sqlite-wal在尝试迁移清理任何先前的失败迁移之前已为我们解决了这个问题。

+1

很高兴知道。我们有同样的问题。 – 2015-03-06 14:48:15