SQL шаблоны не требуют дальнейших затрат ресурсов на их "обслуживание", пока они разрабатываются и применяются на одном компьютере. Но как только требуется добавить их в систему управления версиями, а затем развернуть на компьютерах коллег разработчиков и/или администраторов, то сразу встает вопрос об автоматизации этого процесса.
Известно, что SQL шаблоны являются текстовыми файлами с расширением .sql, тогда остается только выяснить местоположение шаблонов, откуда их загружает SSMS при старте и написать скрипт для копирования файлов в нужную папку.
Различные версии SSMS используют различные папки для хранение шаблонов, к тому же эти папки могут отличаться в зависимости от версии операционной системы. С помощью поиска, я выяснил местоположение шаблонов на моем компьютере с Windows 7 и написал простой скрипт для развертывания шаблонов. Теперь когда у нас в проекте появляется новый разработчик, то ему достаточно выполнить пакетный файл и можно сразу приступить к программированию. Для копирования файлов я использовал xcopy.
Создайте текстовый файл в папке с пользовательскими шаблонами, скопируйте в него следующий скрипт и после сохранения файла, измените его расширение на .cmd. Выполните созданный пакетный файл и перезапустите SSMS для загрузки Ваших шаблонов в Templates Explorer.
ECHO OFF COLOR 0C CLS SET MY_TEMPLATES=A1_MyTemplates_%DATE% REM Templates Folder for Windows 7 REM SQL Server 2005 SET TARGET_FOLDER_90=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\Templates\Sql\%MY_TEMPLATES%\ REM SQL Server 2008 or 2008 R2 SET TARGET_FOLDER_100=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\Templates\Sql\%MY_TEMPLATES%\ REM SQL Server 2012 SET TARGET_FOLDER_110=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\Templates\Sql\%MY_TEMPLATES%\ ECHO SQL Server Version: ECHO 1 - SQL Server 2005 ECHO 2 - SQL Server 2008 or 2008 R2 ECHO 3 - SQL Server 2012 SET /P MENU=Select a menu number: IF %MENU%==1 SET TEMPLATES_LOCATION=%TARGET_FOLDER_90% IF %MENU%==2 SET TEMPLATES_LOCATION=%TARGET_FOLDER_100% IF %MENU%==3 SET TEMPLATES_LOCATION=%TARGET_FOLDER_110% ECHO COPY TO %TEMPLATES_LOCATION% XCOPY *.* "%TEMPLATES_LOCATION%" /Y /E PAUSE
Теперь шаблоны без проблем развертываются на компьютерах коллег, но каждый SQL шаблон имеет пару стандартных, информационных поля, которые требуется заполнять при каждом использовании шаблона. Это как минимум имя и фамилия разработчика и дата создания скрипта.
-- =============================================
-- Author: <Author,,>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
Я бы хотел иметь возможность обновления этой информации во всех шаблонах за один раз. Например данные автора и дата создания скрипта, могли бы выглядеть после такого обновления, следующим образом:-- =============================================
-- Author: <Author,,Вася Пупкин>
-- Create date: <Create Date,,2012-02-22>
-- Description: <Description,,>
-- =============================================
Думаю, разработка программы, которая ищет информационные поля во всех шаблонах и заполняет их пользовательскими данными, не займет много времени. Но я сейчас занят разработкой ExPEditor'а и хочу поскорее выпустить его первую версию.Если кто-то напишет подобную программу для обновления шаблонов - сообщите мне! ☺
Комментариев нет:
Отправить комментарий