Skip to content

odbaev/SSMS-to-Git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Интеграция SSMS и Git

Для автоматизации ряда действий при использовании SSMS и Git можно настроить интеграцию на основе внешних инструментов SSMS.

Установка

  • Скопировать bat-файл ssms_to_git.bat в папку репозитория, где находятся папки схем БД с sql-объектами.

Функционал

Реализованный функционал работает с файлами, открытыми в SSMS и содержащими скрипты таких sql-объектов, как процедуры, функции, представления, триггеры.

Возможные действия и соответствующий режим (mode) работы скрипта:

Действие Режим
Копирование файла из SSMS в папку репозитория Git copy
Сравнение файлов SSMS и Git diff
Слияние файлов SSMS и Git merge
Открытие файла из Git open
Открытие в проводнике файла из Git explore

Для корректного определения sql-объекта в скрипте должна быть строка вида:

(CREATE|ALTER|CREATE OR ALTER) (PROCEDURE|PROC|FUNCTION|VIEW|TRIGGER) [schema].[name]

Для сравнения и слияния файлов используется программа KDiff3 (должна быть установлена на ПК).

Настройка

Для использования функционала под каждое действие необходимо добавить внешний инструмент в SSMS Tools -> External Tools, где указать:

  • Command - путь к bat-файлу
  • Arguments - $(ItemPath) mode, где mode - один из возможных режимов работы скрипта
  • Close on exit - необходимо включить, чтобы окно командной строки автоматически закрывалось

Вызвать добавленный инструмент можно из меню SSMS Tools -> Название_инструмента или назначить сочетание клавиш в SSMS Tools -> Options -> Environment -> Keyboard для соответствующей команды Tools.ExternalCommand1, Tools.ExternalCommand2 и т.д.

Возможные сценарии использования

  • Разработка

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

  • Внедрение

При внедрении разработанного функционала необходимо проверить, что на бою нет других изменений.

Для этого после слияния в основную (master) ветку, до отправки (push) изменений в удаленный репозиторий, можно получить список измененных объектов следующей командой в терминале (например, Bash):

git diff origin/master master --name-only --diff-filter=AMR

Затем открыть объект в SSMS на бою и вызвать внешний инструмент для сравнения или слияния файлов SSMS и Git.

После этого можно открыть файл для наката, используя внешний инструмент для открытия файла из Git.

About

SSMS integration with Git

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published