Как исправить ошибку переноса данных? - PullRequest
0 голосов
/ 09 февраля 2020

Интересно, что делать в случае сбоя переноса данных при обновлении приложения iOS до более новой версии? Поскольку приложение фактически обновлено, означает ли это, что пользователь потерял свои данные навсегда? Может ли пользователь, разработчик приложения или приложение сделать что-нибудь, чтобы вернуть данные, сохраненные в старой схеме?

Я понимаю, что разработчик приложения должен сделать все возможное, чтобы этого не произошло. Но программное обеспечение подвержено ошибкам, я не могу поверить, что этого никогда не было. Как люди справлялись с этим в таких случаях?

Я спрашиваю об этом, потому что пишу приложение со сложным модальным данными. Я ожидаю, что могу внести некоторые изменения в модальные данные после их первоначального выпуска. Было бы хорошо знать, что я могу сделать, если такое произойдет.

Я также думаю о предоставлении функции в приложении для экспорта данных в текстовый файл в формате, указанном в приложении c, который использует высокий Уровень описания языка и работает с различными версиями приложения. Но проблема в том, что iOS обновление происходит автоматически, и пользователь не знает, когда это происходит, и экспортирует данные.

1 Ответ

1 голос
/ 09 февраля 2020

Разработчик должен определить процесс устойчивой миграции данных. Подход следует применять в зависимости от того, какие изменения вносит разработчик.

Если были добавлены некоторые новые атрибуты, сущности или отношения или некоторые их свойства, достаточно предоставить только новую версию модели. Разработчик должен обеспечить выполнение всех необходимых отношений после миграции.

Если вы переименуете отношение или удалите отношение, например, отношение один-к-одному, чтобы сделать его отношение один-ко-многим Такое изменение, вероятно, подвержено ошибкам. В этом случае в новой версии приложения разработчик должен создать другую базу данных, которая работает с новой схемой, и скопировать в нее все данные в новом формате из старой схемы.

Таким образом, даже Xcode работает, когда вы обновить его. Например, вы можете найти базы данных iOS журналов устройств по пути ~/Library/Developer/Xcode/iOS Device Logs, и в каждом имени базы данных есть версия приложения Xcode. Xcode переносит предыдущую базу данных в новую, без миграции предыдущей базы на месте.

...