Обновление базы данных - QualitySolution/QSProjects GitHub Wiki
Общее описание
Библиотека QS.Updater реализует механизм обновления базы данных. После обновления версии программы при входе пользователя программа может проверить необходимость обновления базы данных.
Полноценное обновление - Выполняется при переходе на следующую значительную версию продукта, то есть при изменении первых двух цифр версии. Например 2.2 -> 2.3. Номер версии базы данных хранится в таблице base_parameters в параметре version. Если версия базы не соответствует текущей версии программы, осуществляется обновление базы до актуального релиза.
Настройка обновления
configuration.AddUpdate (
new Version (1, 0),
new Version (1, 1),
"workwear.Updates.1.1.sql");
Настройка Autofac
Для работы обновления БД нужно подключить модуль UpdaterDBAutofacModule. Типичная регистрация:
builder.RegisterType<ApplicationVersionInfo>().As<IApplicationInfo>();
builder.RegisterType<ParametersService>().AsSelf();
builder.RegisterModule(new UpdaterDBAutofacModule());
builder.Register(c => MainClass.MakeUpdateConfiguration()).AsSelf();
Обратите внимание
- Для корректной работы скриптов !!!НИКОГДА!!! не указывай в скрипте название схемы(базы).
- Не забудь добавить скрипт как встроенный ресурс к проекту.
О синтаксисе методов
На текущий момент метод для регистрации обновлений — только один:
configuration.AddUpdate(Version source, Version destination, string scriptResource, Action<DbConnection> executeBefore = null, bool onTesting = false)
source— версия, с которой происходит переход;destination— версия, на которую происходит переход;scriptResource— встроенный ресурс SQL-скрипта;executeBefore(опционально) — программное действие перед выполнением скрипта;onTesting(опционально) — еслиtrue, скрипт не используется при обновлении приложения, только доступен в тестах.