Настройка приложения Windows - обновление и изменение схемы базы данных
У меня есть одно приложение Windows, которое использует БД sqlite. Я создал настройку для этого приложения, используя проект установки и развертывания. Возможно, мне придется делать сборки раз в два месяца с изменениями в приложении, и пользователь должен обновить его.
Мое приложение создает файл БД sqlite при первом запуске. Если файл БД есть, он не создает его. Теперь, когда у меня будет обновление для приложения, мне придется также внести некоторые изменения в схему БД. В этом случае пользователь может также иметь некоторые данные в БД sqlite. Я не должен касаться данных, но обновлять схему БД. Также это будет происходить раз в несколько месяцев, так как я буду добавлять новые функции в приложение.
Как мы обычно обрабатываем такого рода обновления для приложения. Я выполняю новые настройки каждый раз, когда добавляю новые функции в приложение, которое удаляет существующую версию и устанавливает новую версию. Но я запутался в части базы данных. Как мы должны обрабатывать это инкрементное обновление в схеме БД?
Какие-либо предложения?
3 ответа
Хотя вышеприведенные ответы в определенной степени решат мою проблему, я предложил совершенно другой подход.
Я использовал подход обновления базы данных, предоставленный DrDro. Для обновления приложения я думаю, что у меня есть лучший подход. Я нашел одну статью, в которой говорится об автоматическом обновлении приложения из самого приложения всякий раз, когда в источнике доступно новое обновление (в моем случае сервер).
Вот статья. Это объясняет об этом подходе очень четко, и это бросило бы в глаза мое требование.
У вас должен быть номер версии БД в вашей базе данных, и приложение должно обновлять базу данных в зависимости от номера версии. Таким образом, ваши сценарии обновления SQL будут содержаться в / вызываться вашим приложением и обрабатываться при запуске.
Программа установки обновит код и файлы, а ваше приложение обновит базу данных.
Autopatchnet - этот проект представляет собой.Net-порт AutoPatch, основанный на оригинальном проекте TactiKnowledge dotnet.
ecm7migrator - этот проект является форком от Migrator.NET.
Migrator.NET - Миграция базы данных для.NET. Основано на идее Rails ActiveRecord Migrations.