Не хотите заменять старую базу данных при обновлении приложения - PullRequest
2 голосов
/ 30 августа 2011

В моем приложении я использую базу данных sqlite. Я не хочу заменять существующую базу данных при обновлении приложения в магазине приложений.

Будет ли оно заменено новой базой данных?Или это останется той же базой данных?

Ответы [ 3 ]

6 голосов
/ 30 августа 2011

@ Анкит: Привет ..

Ответ НЕТ он не заменит базу данных, он останется прежней базой данных для пользователей, которые уже используют предыдущую версию вашего приложения, а затем просто загружают и устанавливают новую версию приложения без удаления предыдущей версии.

Он заменит базу данных в App Store, но не заменяет базу данных по умолчанию, если пользователь использует предыдущую версию вашего приложения. Если база данных уже существует, она не заменяет процедуру базы данных

Мы должны сделать процедуру обновления базы данных , где нам нужно проверить какой-либо флаг или номер версии в базе данных, если она предоставлена ​​, и на основании этого мы должны создать обновление базы данных. процедура.

Вы должны внести изменения в базу данных с помощью процедуры обновления базы данных и внести изменения в существующие таблицы, такие как добавление или удаление столбца, или, возможно, изменение структуры таблицы с использованием SQL-запросов .

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

Также важно, чтобы вы позаботились о существующих данных, которые пользователь сохранил в своей базе данных. Не должен быть удален.

Не стесняйтесь обращаться ко мне, если вам нужна дополнительная помощь.

Надеюсь, это поможет.

1 голос
/ 30 августа 2011

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

Что делает моя оболочка sqlite:

  1. Сохранение последовательности сценариев sql в ресурсах.
  2. У меня есть файл, который ссылается на список сценариевдля запуска.
  3. Для новой БД он просто запускает эти сценарии по порядку.
  4. При выполнении каждого сценария я записываю в таблицу метаданных отслеживания последний запущенный сценарий.
  5. Когда приложение обновляется (или во время моей разработки), при подключении оно обнаруживает, что последний скрипт не тот, который в таблице.Затем он выполняет итерации сценариев и запускает их только после того, который уже был запущен.

Это приводит меня к обновлениям, а также к ежедневной разработке, не выбрасывая данные постоянно.

0 голосов
/ 30 августа 2011

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

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

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