Приложение, позволяющее автоматизировать повседневные операции разработчиков и тестироващиков, а также наладить связи и взаимодействие между ними в процессе развертывания командных решений.
- Java Runtime Environment Version 8.0
- Семейства операционных систем Windows или Linux
- Поддержка баз данных MS SQL, PostgreSQL
- Планировщик процесса выполнения заданий
- Ведение переменных окружения
- Набор преднастроенных заданий
- Плагинная архитектура заданий. Возможность разработки своих собственных заданий
- Задания для ведения версий схемы баз данных
- Лицензионное соглашение
- Дистрибутивы
- Сборка дистрибутива
- Конфигурация и настройка
- Как задать или настроить системную переменную PATH?
- Скачайте последнюю версию дистрибутива
- Распакуйте архив в нужную директорию. Назовем её C:\tm_distr
- Добавьте переменную окружения
TM_HOME
Windows, указав в качестве значения путь к директории распаковки архива, например, C:\tm_distr - Отредактируйте переменную среды
PATH
Windows, добавив в конец переменной путь к директории распаковки архива, например, C:\tm_distr - Откройте консоль Windows
cmd
и выполните для проверки
tm help
В работе
Наименование действия - параметр вызова приложения без разделителя ":". Возможена передача нескольких действий для выполнения
Параметры действия - перечень параметров вызова приложения с разделителем ":"
Пример вызова:
tm "db" "o:push" "c:test comment"
db
- параметр указывает, что будет выполнена команда работы с базой данных
o
- параметр вызова коммандыdb
, значение которого равноpush
c
- параметр вызова коммандыdb
, значение которого равноtest comment
Файл-версия - файл, содержащий в своем наименовании временную метку его создания. Файлы-версии очень полезны в
командной разработке. Создавая новую версию, разработчик не заботится о конфликте наименований файлов и порядке их выполняения.
Файлы-версий используются в командах управления версией схемы баз данных, а также в команде развертывания скриптов
Примеры файлов-версий. Обратите внимание на то, что файл 20171102135753949_GetLatestVersion.ps1
выполнится ранее
файла 20171102170141781_BuildProject.ps1
, т.к. имеет временную метку в прошлом по отношению к последнему
2017110218174843_file.ps1
20171115122255653_file.sql
20171102135753949_GetLatestVersion.ps1
20171102170141781_BuildProject.ps1
Вывод информации о приложении
tm help
Генерация файла-версии. Служит для создания нового файла-версии. Основная аудитория - разработчики. Так, передав параметр
t:sql
, программа сгенерирует новый файл-версию для развертывания артефактов базы данных. Передав параметр
t:ps1
, программа сгенерирует новый файл-версию скрипта Power Shell.
tm generate "t:sql" "n:test" "stamp:true" "out:out/my_project"
tm generate "t:ps1"
Краткая нотация:
tm g "t:sql"
tm g "t:ps1"
tm g "t:ps1" "n:GetLatestVersion" (сгенерирует 20171102135753949_GetLatestVersion.ps1)
Параметры вызова
t
- тип файла
n
- наименование файла
stamp
- использовать метку времени в именовании файла. Доступные значения true/false. true по умолчанию
out
- директория, где будут создаваться файлы. out по умолчанию
Выполнение операций с базой данных. Ведение версий схемы баз данных. Поддержка работы с Postgres и MS SQL Server.
Указание разделителя, наименования базы данных и параметров подключения производится в файле настроек settings.xml
,
параметрах среды исполнения, либо в переменных запроса db.separator
, db.url
, db.name
, db.user
, db.pwd
Пример:
tm db "o:init" "db.url:jdbc:postgresql://localhost:5432/" "db.name:test_db" "db.user:postgres" "db.pwd:MyPassword" "db.separator:--SEP--"
Используйте разделитель --SEP--
для информирования программы об окончании пакета инструкций SQL.
Программа интерпретирует разделитель --SEP--
как сигнал о том, что следует отправить текущий пакет инструкций SQL
серверу баз данных.
Пример скрипта файла-версии:
IF OBJECT_ID('err.ERROR_SET', 'U') IS NOT NULL
DROP TABLE err.ERROR_SET;
--SEP--
IF OBJECT_ID ('err._WRITE_ERROR', 'P' ) IS NOT NULL
DROP PROCEDURE err._WRITE_ERROR;
--SEP--
IF EXISTS (SELECT name FROM sys.schemas WHERE name = N'err')
BEGIN
DROP SCHEMA err;
END
--SEP--
CREATE SCHEMA [err] AUTHORIZATION [dbo];
Инициализация базы данных. Создание, а также развертывание вспомогательной схемы ver
для ведения версионности базы данных
tm db "o:init"
Параметры вызова
onlyschema
- устанавливает флаг, требуется ли пересоздавать базу данных или развернуть только вспомогательную схему. true - развернуть только схему версий
Полное удаление базы данных
tm db "o:remove"
Обновление базы данных до актуальной версии на основе файлов-версий
tm db "o:push"
tm db "o:push" "v:20170721160750754" "out:out/my_project"
Параметры вызова
out
- директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v
- установить только указанный файл-версию
Ответ в виде таблицы со следующими колонками
Timestamp
- временная метка файла-версии
Status
- статус операции(MISSED (установка пропущена), OK(установка успешна), INSTALL(установка была произведена ранее))
Name
- наименование файла-версии
Получение информации о файлах-версиях базы данных и их состоянии
tm "db" "o:status"
Ответ в виде таблицы со следующими колонками
Timestamp
- временная метка файла-версии
Local
- статус присутствия файла-версии на локальном диске(TRUE(файл-версия установлен на удаленной бд и присутствует на локальном диске), FALSE(файл-версия установлен на удаленной бд, но не присутствует на локальном диске))
Remote
- статус установки файла-версии на удаленной бд(TRUE(файл-версия установлен на удаленной бд и присутствует на локальном диске), FALSE(файл-версия не установлен на удаленной бд, но присутствует на локальном диске))
Author
- автор файла-версии
Name
- наименование файла-версии
Удаление файла-версии базы данных для последующего повторного развертывания. Развернутые артефакты базы данных не удаляются.
tm "db" "o:delete" "v:2017072015512882"
Для удаления последней развернутой версии используйте команду
tm "db" "o:delete"
Параметры вызова
out
- директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v
- удалить только указанный файл-версию
Выполнение всех скриптов файлов-версий в PowerShell. Все переданные команде аргументы будут транслированы в исполняемую среду PowerShell. Для работы с русскими символами установите кодировку консоли, выполнив "chcp 1251"
tm ps
tm ps "v:20170721160750754" "out:out/my_project"
tm ps "v:20170721160750754" "out:out/my_project" "env:dev"
Параметры вызова
out
- директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v
- выполнить только указанный файл-версию
Выполнение последовательности действий, описанной в JSON файле. Также служит для автоматизации процесса развертывания приложений в различных средах.
Пример последовательного выполнения комманд, описанных в файле init_and_upgrade_db.json
tm "plan" "f:init_and_upgrade_db"
Пример последовательного выполнения комманд, описанных в файле plan.json
. Краткая нотация
tm "p"
Параметры вызова
f
- файл, описывающий действия и порядок их следования
Пример файла init_and_upgrade_db.json
. Описывается сценарий инициализации базы данных и её обновление до последней версии
{
"commands": [
{
"name": "db",
"params": [ "o:init" ]
},
{
"name": "db",
"params": [ "o:push" ]
}
]
}
Копирование директорий. Все файли и папки в конечном расположении будут удалены.
Копирование директории install
с файлами в сетевую папку \172.26.72.233\install
tm "copy" "from:..\install" "to:\\172.26.72.233\install"
Параметры вызова
from
- директория, откуда будет произведено копирование. Возможно указать относительный путь
to
- директория, куда будет произведено копирование
Отправка почтового сообщения через сервера GMail
tm gmail "from:ivan@gmail.com" "pass:MyPassword123" "to:bob@mail.ru" "subj:Привет!" "body:Я Иван!"
from
- email пользователя от лица кого отправляется почтовое сообщение
pass
- пароль пользователя от лица кого отправляется почтовое сообщение
to
- email пользователя кому отправляется почтовое сообщение
subj
- тема письма
body
- сообщение
Выводит информацию о запуске приложения
tm info "t1:v1" "env:dev"
Пример вывода
Version: 1.0.0.1
Home: D:\tm_distr
Base settings dir: D:\tm_distr\settings
Base script dir: D:\tm_distr\settings\assets\pg
Out script dir: dir1
Params:
t1:v1
out:dir1
env:dev
param1:1
Version
- версия сборки
Home
- домашняя директория развертывания
Base settings dir
- директория расположения файлов настройки
Base script dir
- директория расположения файлов скриптов баз данных
Out script dir:
- директория выгрузки