Ведение базы данных на стороне клиента - PullRequest
0 голосов
/ 22 апреля 2019

Клиентская сторона : У меня есть настольное приложение. Приложение также имеет файл Sqlite. Я установил его с помощью WIX Toolset на клиентском компьютере. Когда я ввожу некоторые данные в приложение, они сохраняются в файле базы данных.

Сторона сервера: Я внес некоторые изменения в свое приложение, например, добавил дополнительный столбец в таблицу в файле базы данных.

Я также установил новую версию приложения со стороны сервера.

ПРОБЛЕМА: как только я открываю файл sqlite со стороны клиента, все мои предыдущие данные теряются. Все, что я получаю, это пустой стол.

Вопрос: возможно ли сохранить предыдущие данные, хранящиеся в базе данных, вместе с новыми изменениями после установки обновленной версии приложения?

1 Ответ

1 голос
/ 22 апреля 2019

Это общая проблема с MSI, которая обычно выражается в файлах XML, но это то же самое.

MSI может перезаписать или не перезаписать файл, и в любом случае это будет неправильно. Вы хотите изменить схему, но не хотите терять пользовательские данные, и для MSI файл является атомарным.

Лучше всего использовать файл, установленный MSI, в качестве начального числа / модели, клонировать его в другой каталог при запуске приложения и хранить там данные пользователя. При последующем входе в систему проверьте исходную базу данных на наличие изменений схемы и на основе этого программно перенесите клонированную базу данных.

...