Добавление нового столбца в существующую таблицу совершенно безопасно даже с существующей базой данных SQLite.То же самое касается создания новой таблицы.Конкретный процесс зависит от того, какую библиотеку SQLite вы используете.
Если вы запрашиваете базу данных напрямую, используя SQL-запросы, то вы будете использовать ALTER TABLE ... ADD COLUMN
запрос.Если вы используете библиотеку, такую как sqlite-net-pcl
, вы получаете автоматические миграции из коробки при запуске метода CreateTable
.Как указано в документации :
В настоящее время автоматическая миграция поддерживает только добавление новых столбцов.Если у ваших классов есть новые свойства, которые не связаны со столбцами в таблице, то команды alter table ... add column будут выполняться для обновления базы данных.Эти новые столбцы не будут иметь значений по умолчанию и, следовательно, будут нулевыми.
Совет
При изменении модели всегда проверяйте изменения по сравнению с предыдущей версией базы данных.Это можно сделать двумя способами:
- Установите существующую версию из Store, запустите приложение и используйте его, чтобы оно содержало некоторые данные, затем закройте его и перейдите к
C:\Users\[UserName]\AppData\Local\Packages
.Здесь перейдите к Packages
и там найдите папку пакета вашего приложения.Внутри перейдите на LocalState
, где вы должны найти базу данных sqlite
.Скопируйте его куда-нибудь, удалите версию Store и запустите новую версию для отладки и поместите точку останова в конструктор App.xaml.cs
.Когда отладчик останавливается на этом, скопируйте исходную базу данных обратно в ту же папку в папке пакета приложения LocalState
и продолжайте отладку.Обратите внимание, что база данных перенесена правильно. - Используя систему контроля версий Git, перейдите в историю к предыдущей фиксации выпуска, установите приложение для отладки, заполните базу данных некоторыми данными, закройте приложение.Теперь перейдите к последнему коммиту и снова запустите приложение для отладки.Убедитесь, что миграция работает.