Резервное копирование основных данных?

У меня есть приложение с очень большой базой данных Core. За прошедший год я несколько раз это рассказывал.

В последний раз, когда я обновил базу данных, я сделал одно простое изменение для объекта: я добавил новый необязательный атрибут. По какой-то причине он не будет мигрировать с использованием Light-weight Migration. Я узнал намного позже, что это произошло из-за ошибки в коде Light-Weight Migration от Apple в результате «переименования идентификаторов», который мне понадобился в другом варианте.

Во всяком случае, я отвлекаюсь …

Из-за ошибки, которая мешала мне использовать Light-weight migration, я создал файл сопоставления, чтобы помочь с переносом, не понимая, что это будет гораздо более тяжелый процесс и заставит моих пользователей ждать, пока приложение загрузит всю базу данных в памяти при выполнении миграции. Оказывается, это совсем не вариант с очень большими базами данных, и многие из моих пользователей не смогли перенести базу данных вообще из-за проблем с памятью и т. Д.

Итак, теперь я хочу переиздать приложение и прояснить эту проблему. Проблема в том, что некоторые из моих пользователей имеют базу данных, которая как-то помечена как «посередине миграции». Даже с моим новым кодом, который избавляется от файла сопоставления и поддерживает легковесную миграцию, пользователи, находящиеся в этом состоянии, «посередине миграции», похоже, не получают сброс.

Каковы мои варианты для поддержки миграции? – Я могу обнаружить, что я в этом состоянии, потому что в каталоге «Документы» есть файл .myDB.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3 '. При удалении этого файла миграция не устраняется. Я предполагаю, что база данных каким-то образом помечена как находящаяся в этом состоянии или уже частично перенесена. – Я могу обнаружить это состояние, а затем удалить базу данных. Но это заставляет моих пользователей повторно загружать свои данные.

Есть предположения?

Спасибо за помощь.

One Solution collect form web for “Резервное копирование основных данных?”

Единственное, что происходит со мной, – это открыть хранилище SQL поврежденного файла и искать флаги или что-то еще, что может сигнализировать о том, что db находится в переходном состоянии. Возможно, вы сможете написать прямо в файл и изменить что-то.

Это действительно уродливая проблема.

  • iOS: как аутентифицировать пользователя после входа в систему (для автоматического входа в систему)?
  • UITableView DidSelectRowAtIndexPath?
  • Как установить UIImage из номинального состояния и текста заголовка в выбранном состоянии в UIButton
  • Карта тепла на карте в iphone ...?
  • Имя приложения обновлено, но не на GameCenter
  • Как быстро настроить контроллер просмотров на один из предыдущих контроллеров представления?
  • iOS список доступных Bluetooth-устройств с программной информацией
  • Кто-нибудь смог использовать setBrightness] на фоне / выходе?
  • Определите, может ли устройство одновременно вызывать и передавать данные
  • Загрузите изображение RGBA из двух jpeg на iOS - OpenGL ES 2.0
  • iOS, как вычислить количество пикселей / областей, заключенных в кривую?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.