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

#iphone #sqlite #app-store

#iPhone #sqlite #app-store

Вопрос:

У меня есть приложение в app-store, которое управляется базой данных, означает, что все содержимое находится в файле базы данных sqlite. Теперь мне нужно отправить еще одно обновление приложения с некоторым обновлением содержимого в базе данных sqlite, итак, каков самый простой способ убедиться, что моя база данных обновляется во время обновления приложения. Обратите внимание, что это статическое приложение, и для синхронизации БД не включены онлайн-сервисы, поэтому я ищу что-то простое, без участия серверных служб и т. Д. Ожидание ответа. Спасибо за ваше внимание.

Ответ №1:

Если вы создаете копию своей базы данных где-то, например, в папке Caches, вам следует добавить в базу данных дополнительную таблицу с записью для версии базы данных. Добавьте 2011-11-23 что-то вроде строки или даты в запись «db_version». При обновлении базы данных обновите это поле. Когда ваше приложение запустится, сверьте версию базы данных app bundle с скопированной базой данных. Если версия пакета приложений более новая, скопируйте ее после удаления старой.

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

Комментарии:

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

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

3. я .. я тоже думал об этом. в любом случае у меня есть быстрый способ решения моей проблемы.. Подумываю внедрить что-то, что облегчит мне жизнь для решения таких проблем в будущем;).. например, какой-то класс, который копирует упомянутые таблицы БД перед заменой БД.