Огромная миграция CoreData в Swift - PullRequest
0 голосов
/ 23 января 2019

У меня есть файлы CoreData sqlite *.sqlite *.sqlite-shm *.sqlite-wal в формате zip из моей предыдущей версии приложения.Размер файла составляет почти несколько сотен МБ.

В последней версии я внес некоторые изменения в схему базы данных, то есть добавил несколько новых полей и т. Д.

В разделе Импорт я просто заменяю текущую базу данных.по старой базе данных и заставляя пользователя перезапустить приложение, что является сырым.Это работает, однако, это вызывает 2 проблемы

1- Это занимает много времени на заставке приложения зависания.

2- Если база данных достаточно велика, время зависанияпропускает Timeout of Application и автоматически закрывает приложение.

Что является лучшим способом импорта базы данных в основные данные, сохраненные в Documents в виде zip-файла.

1 Ответ

0 голосов
/ 23 января 2019

Сначала определите, выполняете ли вы миграцию.Если да, то отобразите ViewController со счетчиком, который объясняет, что вы делаете («пожалуйста, подождите, пока мы оптимизируем приложение»).Когда миграция базы данных будет завершена, загрузите ваш обычный viewController.

Эта проблема обсуждается в этой лекции: Основные данные Попурри (Пол Гораке, 13 февраля 2014 г.) около 58:00.Хотя лекция немного устарела (она была сделана до NSPersistentContainer), она по-прежнему одна из лучших, которые я когда-либо видел, и стоит посмотреть все видео.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...