обновить базу данных sqlite для iphone - PullRequest
3 голосов
/ 25 октября 2010

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

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

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

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

Ответы [ 3 ]

1 голос
/ 25 октября 2010

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

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

Вы также можете взглянуть на книгу «Основные данные» Маркуса Зарры и пример кода.

0 голосов
/ 25 октября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...