2010-10-25 5 views
3

Рассмотрите базу данных SQLite для приложения iPhone с некоторыми «документами» в качестве шаблонов. Пользователь также может добавить свои собственные шаблоны.обновить базу данных sqlite для iphone

Я хочу обновить программу и базу данных. Есть ли шанс сделать это без перезаписи данных пользователя?

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

Как это можно сделать без перезаписи данных пользователя?

ответ

0

Вы можете проверить приложение на наличие старых версий db при его запуске и при необходимости обновить его. Итак, в основном, обновите приложение, и оно обработает обновление db. Это позволит вам выполнять резервное копирование/восстановление данных (при необходимости).

+0

Это было мое мышление. – BobbyShaftoe

0

При обновлении приложения и хранилища данных доставьте ALTER скрипты в пакете обновления. Когда приложение первым бежит, он должен:

  • запустить

    • проверка ли база данных нуждается в обновлении (номер версии и т.д.) в ALTER и UPDATE скриптов, чтобы взять схему и данные от v1 до v2
  • 1

    Если вы используете базовые данные, то относительно новой версии модели данных (схемы) должно быть относительно легко и автоматически выполнить миграцию. При некоторых незначительных изменениях вам может понадобиться создать модель сопоставления. И если ваша схема значительно изменяется при реорганизации объектов, добавлении уровней абстракции и т. Д., То вам может понадобиться подкласс NSEntityMigrationPolicy.

    Вы можете посмотреть на Core Data Model Versioning and Data Migration Programming Guide

    Вы также можете посмотреть на книги и примеры кода «Core Data» Маркус Сарры в.

    Смежные вопросы