IOS выкатывает обновления приложений. Держите пользовательские данные Intact, когда требуется обновление БД

Я только что сделал быстрый поиск, и ничего не подходит, так что здесь идет.

Я выпустил первую версию приложения. С тех пор я сделал несколько изменений в SQLite DB, с тех пор в следующем выпуске мне нужно будет обновить структуру БД, но сохранить данные пользователя.

Какой лучший подход для этого? В настоящее время я думаю, что в обновлении приложения я никогда не заменяю файл базы данных пользователя (папке документов, а не в Bundle), а скорее изменяющую его структуру с помощью SQL-запросов.

Это будет включать изменения отслеживания, внесенные в базу данных, поскольку предыдущий выпуск. Скрипт Все эти изменения в SQL-запросы и запускают их, чтобы довести БД до последней версии. Мне также нужно будет сохранить поле в базе данных для отслеживания номера версии (поддерживать в соответствии с версией приложения для простоты).

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

При этом я покажу «Обновление приложения» или что-то для пользователя.

Следующая вещь, что произойдет, если есть ошибка где-то вдоль линии, и обновление не удается. БД будет устарела, и приложение не будет функционировать должным образом, так как ожидает более новая версия?

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

Любые идеи на это были бы очень ценится. :)

Спасибо!

10
задан John Topley 8 September 2011 в 13:19
поделиться