Если файл базы данных является частью вашего пакета приложений при обновлении приложения, вы обновите базу данных.
Если база данных не входит в комплект приложения, но находится в пространстве чтения и записи (например, в каталоге документов), вам необходимо реализовать свою собственную стратегию.
я включить таблицу schema_version свою базу данных:
create table schema_version (
version integer not null
);
, а затем на приложение запускается, проверить текущую версию, а затем посмотреть в моем каталоге приложения для обновления-схе- [N + 1]. sql-файл для применения в качестве обновления. Так что, если моя версия схемы - 4, я проверю на update-schema-5.sql и т. Д. (И я повторяю это по мере необходимости, пока не закончу файлы с обновлением-схемой-N.sql для применения.)
Имейте в виду, что производительность записи sqlite на iphone не так уж и велика. Если вам нужно обновить строки базы данных 200K, вам, скорее всего, придется выяснить, каким образом пользователь будет забавляться во время его продолжения.
Мое приложение использует гибридный подход, в котором мы имеем большинство (60 МБ) наших данных в базе данных только для чтения и меньшую базу данных для чтения и записи для пользовательского и кэшированного контента.
Отлично! Когда вы хотите нажать новую версию db на локальное физическое тестовое устройство (iphone/ipod touch), какой самый простой подход? Я только что переименовал свой db каждый раз, что заставляет новую версию подбираться/использоваться. – 2009-12-03 01:46:56
I Build: Clean ([shift-command-k]) после обновления базы данных. –