Как сохранить данные в базе данных SQLite на iPhone при обновлении версии приложения? - PullRequest
10 голосов
/ 30 августа 2010

У меня есть база данных SQLite в первой версии моего приложения для iPhone (которая находится в магазине приложений). Теперь я хочу развернуть вторую версию приложения, в которой также есть база данных SQLite.

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

Вопрос в том, как перенести данные из старой базы данных SQLite (старой версии) в новую? И как я могу проверить процесс обновления версии, который будет происходить в App Store?

Любая помощь будет принята с благодарностью. Спасибо.

Ответы [ 2 ]

2 голосов
/ 30 августа 2010

Ответ таков: реализуйте управление версиями в своем приложении с самого начала: -)

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

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

Чтобы протестировать обновление, просто начните с новой копии предыдущей версии на вашем устройстве. Затем установите новый (сборка и запуск подойдут просто отлично). Вы сохраняете старые версии своего приложения, верно?

2 голосов
/ 30 августа 2010

Это не то, что я лично проверял, но насколько мне известно:

  1. На ваш первый вопрос ответили , и вкратце это то, чтовам не повезло, если ваш sqlite db не скопирован в каталог Documents, так как весь пакет приложений будет заменен при обновлении.Предполагая, что christo16 является правильным, и предполагая, что ваше уже поставленное приложение не не скопировало базу данных в Documents, вы можете захотеть отправить промежуточную версию, которая делает .Тогда нужно было бы убедиться, что критическая масса пользователей установила промежуточную версию, прежде чем запускать обновления базы данных.
  2. Re: testing.Вы сможете проверить поведение при обновлении, установив сборку через iTunes, а не через Build & Run.Прошло некоторое время с тех пор, как я попробовал это ... следуя инструкциям для специальной сборки, нужно добиться цели, хотя это может быть излишним.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...