Я только что сделал быстрый поиск, и ничего слишком актуального не пришло, так что здесь.
Я выпустил первую версию приложения. Я сделал несколько изменений в SQLite db с тех пор, в следующей версии мне нужно будет обновить структуру БД, но сохранить пользовательские данные.
Какой лучший подход для этого? В настоящее время я думаю, что при обновлении приложения я никогда не буду заменять файл базы данных пользователя (папка с документами, а не в пакете), а скорее изменять его структуру, используя SQL-запросы.
Это будет связано с отслеживанием изменений, внесенных в базу данных с момента предыдущего выпуска. Script все эти изменения в SQL-запросах и запустить их, чтобы довести БД до последней версии. Мне также необходимо сохранить поле в базе данных для отслеживания номера версии (для простоты).
Если нет определенных перехватов, делегируйте методы, которые запускаются при первом запуске после обновления, я буду вызывать вызовы для этой логики в самом начале appDelegate, прежде чем что-либо еще будет запущено.
Выполняя это, я покажу "Обновление приложения" или что-то пользователю.
Далее, что произойдет, если ошибка произошла где-то вдоль строки, и обновление не выполнено. БД будет устаревшей, и приложение не будет функционировать должным образом, поскольку ожидает новую версию?
Должен ли я взять это на себя, чтобы просто удалить файл DB пользователя и заменить его новой версией из пакета приложений. ИЛИ, должен ли я просто протестировать, протестировать, протестировать, пока все не станет твердым на моей стороне, и если на стороне пользователя возникнет ошибка, это что-то еще, и в этом случае я ничего не могу с этим сделать, только отбрось данные.
Любые идеи по этому поводу будут очень признательны.:)
Спасибо!