2014-10-10 184 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