Обновление новой версии для магазина приложений с использованием другой структуры db sqlite

Я загрузил приложение в магазине приложений (версия 1.0). Мое приложение использует базу данных sqlite для хранения некоторых данных. Теперь я внес некоторые изменения в базу данных (я добавил 2 или 3 новых столбца в одну из таблиц в моем db). Я хочу обновить предыдущую версию моего приложения с новой версией 1.1 (которая имеет другую структуру db). Теперь, когда пользователи, которые уже используют версию 1.0, обновляют приложение до версии 1.1, db уже присутствует в песочнице приложений и, следовательно, приложение указывает на версию 1.1, но мой db по-прежнему остается старым. Я хочу иметь новый db со старыми данными, если они есть. Пожалуйста, помогите мне. Благодарю.

2 Solutions collect form web for “Обновление новой версии для магазина приложений с использованием другой структуры db sqlite”

sqlite поддерживает что-то, называемое свойством user_version, вы можете выполнить PRAGMA user_version для запроса текущей версии схемы вашего приложения db. Этот запрос может произойти в начале записи, когда начнется ваше приложение.

для обновления этого user_version выполните следующий запрос на обновление PRAGMA user_version = version_num ;

Всякий раз, когда вы создаете sqlite db, лучше всего использовать это свойство user_version, чтобы при обновлении в будущем вы могли запрашивать текущее значение. Проверьте, что нужно, и выполните оставшиеся изменения или создайте таблицы, чтобы обновить версию схемы.

Например:

В первом выпуске я создаю таблицу1 с col1, col2

Я выполняю sql для создания таблицы1, и как только она будет успешно выполнена, я выполняю pragma user_version = 1. так что это укажет, что моя текущая версия схемы – 1

В будущей версии я добавляю новый col3, мне нужно изменить версию схемы на 2

Сначала я запрашиваю user_version, проверяю его значение и, если он равен 1, вам нужно запустить скрипт alter, чтобы добавить новый столбец и установить версию пользователя на 2.

В вашем случае, поскольку вы ранее не устанавливали user_version, было бы трудно отличить новую установку от сценария обновления. Так что теперь можно предположить, что если db присутствует, это сценарий обновления и выполнить скрипты с изменениями, а если нет, предположим, что это новый сценарий установки и запуск сценариев создания. Но посмотрите, можете ли вы использовать выше прагма, чтобы решить свою проблему в будущем по крайней мере.

Вы можете проверить запуск, если это старый db, и если у него есть подпрограмма для создания нового db с новой структурой (с временным именем), скопируйте все данные из старого в новое, закройте старый db & delete он, закройте новый db, переименуйте его, затем, наконец, откройте его снова для использования вашего обновленного приложения. Легко, быстро, и вам не нужны глубокие знания SQLite, чтобы это сделать.

  • Как открыть базу данных sqlite, когда приложение работает в фоновом режиме в ios
  • Преобразование текста в номера
  • Как вставить строку, содержащую символ в sqlite ios
  • Включение foreign_keys = ON в sqlite3 с помощью кода
  • Как обновить данные на сервере db через json api?
  • Приложение iOS для судов с предварительно заполненной базой данных sqlite
  • хранить и извлекать изображение в базу данных sqlite для iphone
  • sqlite шаг назад
  • Восстановление sms.db
  • sqlite3_prepare_v2 / sqlite3_exec
  • Как скопировать базу данных sqlite при запуске приложения в iOS?
  • Ошибка приложения с сообщением о сбое при обновлении базы данных SQLite
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.