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