Виталий @Vitaliy_Filaretov
Head of QA
Как автоматизировать с Jenkins сборку и раскатку артефактов модели метаданных для таблиц в хранилище
![](http://habrastorage.org/r/w48/getpro/habr/avatars/0ca/e2e/d2c/0cae2ed2c9f4126cbe67a5b0cc279bcd.jpg)
Данные никуда не теряются, все так же находятся в интерфейсной области. Просто их можно заново прогрузить с другим методом преобразования. Плюс функционал имеет параметр, по которому можно включить/выключить хранение данных в предыдущей версии таблицы при пересоздании.
0
LookКак автоматизировать с Jenkins сборку и раскатку артефактов модели метаданных для таблиц в хранилище
![](http://habrastorage.org/r/w48/getpro/habr/avatars/0ca/e2e/d2c/0cae2ed2c9f4126cbe67a5b0cc279bcd.jpg)
В нашем случае, новая модель это совершенно новая сущность с другой структурой. Поэтому не происходит ни переименования, ни удаления -> создания. Таким образом, мы можем проследить историю формирования структур и имеем возможность раскатать в любой момент предыдущую версию таблицы, зависящую от способа загрузки данных.
0
LookКак автоматизировать с Jenkins сборку и раскатку артефактов модели метаданных для таблиц в хранилище
![](http://habrastorage.org/r/w48/getpro/habr/avatars/0ca/e2e/d2c/0cae2ed2c9f4126cbe67a5b0cc279bcd.jpg)
Связано это с тем, что в нашем случае Jenkins используется не только для CI процесса, но и в качестве оркестратора, который должен быть максимально понятен конечному пользователю. Jenkins поставляется с достаточно удобным графическим интерфейсом, поэтому, как мне кажется, его удобнее использовать. Так же плюсом является огромное количество готовых плагинов интегрируемых в Jenkins, я еще не встречал задачу, под которую не было бы плагина. Можно визуализировать с их помощью все виды отчетности по результатам тестов и сборкам, провести статический анализ и т.д. и т.п. Еще один плюс в пользу Jenkins это то, что он легче взаимодействует с несколькими репозиториями, тем более одним из таких, помимо git, является svn. Не приходилось интегрироваться к svn через GitLab_CI, но в Jenkins это дело пары секунд. Естественно каждый инструмент по-своему интересен в решении тех или иных задач. В нашем случае Jenkins оказался более полезен, тем более на нем крутится не только, описанный функционал. Я постарался отметить те преимущества, которые нам необходимы и согласен, что в чистом CI инструменты похожи.
0
LookКак автоматизировать с Jenkins сборку и раскатку артефактов модели метаданных для таблиц в хранилище
![](http://habrastorage.org/r/w48/getpro/habr/avatars/0ca/e2e/d2c/0cae2ed2c9f4126cbe67a5b0cc279bcd.jpg)
В данном случае все значительно проще. Имеется обычная SQL-функция, в нее передаются параметры ID-источника и ID-модели. Указанные параметры могут передаваться в цикле динамически через «for». По переданным ID, определяется набор таблиц в метаданных для источника, затем селектится из тех же метаданных набор полей с их свойствами. На выходе мы получаем в dbms_output параметр с DDL. Раскатанные модели помечаются специальным флагом активности в базе с метаданными. Так мы понимаем раскатана модель или нет и на каком контуре.
0
LookInformation
- Rating
- Does not participate
- Registered
- Activity