Краткая информация об окружающей среде.
- Веб-приложение Asp.net (источник хранится в svn)
- База данных SQL Server. (Схема базы данных (таблицы / sprocs) хранится в SVN)
- версия базы данных синхронизируется с версией сборки веб-приложения. (хранится в таблице CurrentVersion)
- CI сервер hudson, который извлекает веб-приложение из репозитория и запускает пользовательский файл msbuild для публикации / упаковки приложения.
Мой скрипт msbuild обновляет версию сборки веб-приложения (Major.Minor.Revision.Build) для каждой сборки. «Редакция» установлена на текущую извлеченную ревизию svn, а «сборка» - на номер сборки hudson (увеличивается при каждой автоматической сборке).
Таким образом, я могу сопоставить приложение с определенной ревизией ствола, а также получить другие статистические данные сборки по номеру сборки Hudson.
Я бы хотел автоматизировать сбор сценариев миграции (обновленных sprocs и т. Д.) Для добавления в zip-пакет.
Я полагаю, сравнивая svn-ревизию базы данных, которая еще не развернута, с внедряемой ревизией, я могу определить, какие файлы БД изменились в транке с момента последнего развертывания в этой базе данных / среде.
Этого легко достичь, вручную вызвав команду svn diff -r REVNO:REVNO
для вывода списка измененных файлов .sql. Эти файлы затем могут быть вручную добавлены в пакет.
Было бы здорово, если бы это можно было автоматизировать.
Во-первых, я бы подумал, что мне нужно написать пользовательское задание, чтобы проверить версию БД, в которой еще не развернута. После этого я совершенно не уверен.
Кто-нибудь есть какие-либо предложения о том, как это будет достигнуто с помощью существующей или пользовательской задачи msbuild
Наконец, мне нужно будет автоматически сгенерировать скрипт для добавления в пакет, который обновляет таблицу версий базы данных, чтобы синхронизировать ее с приложением.