SQL Change Master — II

Работа в консольном режиме

В режиме командной строки программа поддерживает на данный момент обновление баз для указанного окружения. При этом можно задать путь для записи логов и показ их по отработке выполнения.

Changecontroller.exe alias=dev log=”c:\temp\log.txt” showlog

Данная запись говорит, что надо найти и запустить обновление для окружения dev, лог выполнения записать в файл log.txt в папке c:\temp и после выполнения обновления показать лог. На мой взгляд, все достаточно просто и применимо в различных ситуациях, как для Continuous Integration, так и для работы в студии. Можно и просто вставлять в батнички для обновления многих настроек окружения.

Так же можно задать обновления определенной базы данных из указанного окружения.

Changecontroller.exe alias=dev base=testbasea

Данная запись говорит, что надо найти обновление для окружения dev, для базы testbasea и запустить скрипты обновлений.

Если вы что-то указали неверно, или же программа не может найти указанное окружение или базу данных, то SQL Change Master запуститься в графическом режиме.

Работа в студии

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

Итак, для работы нам понадобится SQL Change Master и датабазный проект от МS.

Настройка датабазного проекта

Создаем новый проект. File > New Project…

В появившемся окне выбираем шаблоны для баз данных для SQL Server и в них находим, к примеру, SQL Server 2008 Database Project.

Обратите внимание, что название проекта должно в точности совпадать с названием базы данных, которое было указано в SQL Change Master.

После того, как создадите проект, следующим шагом будет удаление всех предсозданных папок из него. Да, вот так безжалостно надо поступить с проектом. Сначала была идея использовать ту структуру папок, но соблазны в виде Schema Comapre, которые гадили в папки по умолчанию все портили, и я решил не основываться на папках от MS. После удаления всего, что там было, создаем свой набор папок:

  • Database
  • Functions
  • Schema Change
  • Stored Procedures
  • Triggers
  • Views

Должно получиться как на картинке.

В чем же прикуп от использования Database Project? В том, что контекстное меню показывает создание нужных элементов, как то: процедуры, запросы, представления и так далее.

После того, как мы выбрали нужный нам элемент, студия подскажет код для его написания. Например, для view

 

Для кого-то это может быть актуально и удобно. Да просто скрипты писать наверно удобнее выбрав расширение из визарда, чем меняя его руками с txt на sql, к примеру.

Настройка внешних инструментов

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

Итак, первым шагом пойдет настройка внешних инструментов для студии. В меню Tools > External Tools… создаем новый пункт.

В появившимся окне нажимаем на Add, и заполняем все согласно скриншоту ниже.

Конечно адрес до ChangeController.exe надо написать свой. Аргументы для работы уже описывались выше. Единственно что, тут используются макросы студии, для того чтобы указать на имя проекта.

alias=dev base=$(TargetName) showlog

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

Настройка контекстного меню

Вторым шагом нам надо будет сделать контекстное меню. Для этого выбираем Tools > Customize… (второй снизу), после чего надо будет выставить элементы управления как на скришоте.

Вы можете выбрать какое угодно контекстное меню, но я советую Project and Solution Context Menus | Project | Project Only. После этого жмем на первую верхнюю кнопку слева Add Command…

Появляется окно со всеми возможными командами из главного меню. Выбираем категорию Tools и команду External Command 9. Вы выбираете команду с нужным номером, который вы запомнили ранее или же записали на бумажке. Для меня это команда номер 9.

Жмем ОК, и можно довершить все последним аккордом, сочетанием горячих клавиш для обновления выделенной базы данных.

Теперь нажимаем на кнопку Keyboards… на диалоговом окне Customize (оно на скриншот выше)

Для облегчения поиска начинаем вводит в Show commands containing: (первое подчеркнутое место) Tools.ExternalCommand, в списке ниже тогда окажутся только нужные нам команды. Если набирать совсем не лень, то можно полностью набрать с номером.

Из списка ниже выбираем команду с нужным номером и в поле Press shortcut keys: (второе подчеркнутое место) нажимаем нужные нам комбинации. В моем случае это Ctrl+D, Ctrl+D, что ассоциируется у меня с Deploy Database.

После этого можно наслаждаться плодами трудов своих.

 

Теперь вы получили полностью готовую к работе систему, которой удобно пользоваться.

Обновление программы

Программа имеет механизм самообновления, с позволения пользователя.

Программа не некоторой периодичностью опрашивает сервер обновлений и если находит новую версию, то уведомляет об этом пользователя. Уведомление выглядит как ссылка в нижнем правом углу с надписью New version available.

Нажав на нее вы увидите новое окно, в котором будет указано, какая версия приложения стоит у вас, какая версия доступна для установки. Краткое описание изменений, которые привносятся с новой версией и непосредственно ссылка-кнопка на обновление приложения Update application.

При нажатии на нее, приложение закрывается, скачивается новая версия, происходит обновление нужных файлов, после чего приложение перезапускается.

Процесс обновления прост и легок до безобразия!

Как поделиться настройками

Так как настройка окружений может занять время, то справедлив вопрос, как же поделиться настройками и всем, тем, что было занесено в программу с товарищем. Для этого надо просто отослать всем заинтересованным лицам файл SqlEnvironmentBase.eq

 

Вопросы и предложения высылать на sql.change.master@violet-tape.net

 

Hard’n’heavy!

Оставить комментарий