Одна вещь, которую я использовал, состояла в том, чтобы хранить массив столбцов для каждой таблицы, например
лиц = {[имя, адрес, почтовый индекс]}
тогда у меня также есть другой массив версий, который говорит мне, что у меня есть версия 1, лица, 4 столбца.
Тогда, когда я обновлю приложение, добавлю f.ex. GSM лицам, я обновляю массив и количество. Затем я запускаю запрос к базе данных sqlite_master, разбираю данные
вы можете запустить '.schema Person', чтобы получить оператор create. Это просто работа, которую вы выполняете один раз, и вы никогда не запускаете alter table для таблиц, обновляющихся таким образом. Вы должны быть организованы.