Если файл базы данных является частью комплекта вашего приложения, при обновлении приложения вы обновите базу данных.
Если база данных не является частью пакета приложения, но находится в пространстве для чтения и записи (например, в каталоге документов), вам необходимо реализовать собственную стратегию.
Я включил таблицу schema_version в свою базу данных:
create table schema_version (
version integer not null
);
и затем при запуске приложения я проверяю текущую версию и затем ищу в каталоге моего приложения файл update-schema- [N + 1] .sql для применения в качестве обновления. Поэтому, если у меня версия схемы 4, я проверю update-schema-5.sql и т. Д. (И повторяю это по мере необходимости, пока не закончатся файлы update-schema-N.sql для применения.)
Имейте в виду, что производительность записи sqlite на iphone не так уж велика. Если вам нужно обновить строки базы данных объемом 200 КБ, вам, вероятно, потребуется найти способ удержать пользователя в процессе его работы.
Мое приложение использует гибридный подход, при котором у нас есть большая часть (60 МБ) наших данных в базе данных только для чтения и меньшая база данных чтения и записи для пользовательского и кэшированного контента.