Один из способов сделать это состоит в том, чтобы в вашей базе данных была таблица, содержащая версию схемы базы данных.
Когда у пользователя есть база данных в папке документов (которая, вероятно, была скопирована из предварительно созданной базы данных)из пакета приложения) необходимо внести изменения в эту базу данных, чтобы синхронизировать ее с текущей схемой.Это включает в себя обновление схемы и любых измененных данных.
Вы можете сделать это, связав в своем приложении несколько сценариев sql, которые приведут схему базы данных пользователей вперед на один шаг за раз, например:
- Чтение версии схемы из базы данных пользователей => 3 (текущее значение 5)
- Выполнение сценария sql "schema_3_to_4.sql"
- Выполнение сценария sql "schema_4_to_5.sql"
- Все готово - готово к использованию
Если у вас нет версии схемы в вашей текущей базе данных, просто посчитайте это версией 0 и добавьте таблицу в обновление вашей версии 1, например:
begin exclusive transaction;
create table schema (version integer);
insert into schema(version) values (1);
create table temp_update as select * from question;
drop table question;
create table question(id INTEGER PRIMARY KEY, new_answer INTEGER);
insert into question(id, new_answer) select id, 42 from temp_update;
drop table temp_update;
commit;