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

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

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

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

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

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

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

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

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

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

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

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

  • Вопрос совместимости Retina: могу ли я добавить @ 2x к своим собственным изображениям для совместимости сетчатки?
  • Лене с просьбой о предоставлении услуг
  • NSDateFormatter возвращает неожиданные результаты
  • UITextView Внутри UIScrollView Прокрутка родителя при вводе текста
  • как установить cornerRadius только для верхнего левого и верхнего правого угла UIView?
  • как сохранить plist в NSUserDefaults
  • Можно ли отправлять информацию с iPhone на Apple Watch?
  • iphone 6 vs iphone 5 image Соглашение об именах
  • Как оптимизировать рендеринг большой модели в OpenGL ES 1.1?
  • Swift: Ошибка: «обязательный» инициализатор «init (coder :)» должен быть предоставлен подклассом «UIView»
  • Как сделать панель вкладок прокручиваемой в iphone?
  • Interesting Posts

    как центрировать выбор uitableview с использованием значения indexpath

    Событие iOS 7 onchange нарушено в iPad 3 + Mini // Нужна работа вокруг

    Включить ориентацию интерфейса iPhone

    Шаблон проектирования для управления состоянием пользовательского интерфейса в iOS

    UIButton как подзадача в MKAnnotationView не работает

    Как получить доступ к текущему пользователю firebase из iOS Today Extension?

    Как я могу использовать токен доступа, чтобы обойти FB.login ()

    GKLocalPlayer loadRecentPlayersWithCompletionHandler возвращает пустой массив последних игроков в iOS 10 GM

    Использовать lldb для отладки собственных библиотек с помощью Xamarin

    iOS: интеграция crashlytics без cocoapods и плагина

    Шрифт NSAtributedString

    Точка останова Xcode не работает внутри блока dispatch_async

    фон: исправлено отсутствие повторения не работает на мобильном телефоне

    Как предотвратить GMSMapView обновить текст на карте?

    Расширение результатов CLPlacemark в EXC BAD ACCESS

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.