SlideShare a Scribd company logo
Автоматическое
версионирование
и релиз баз данных
             ...для умников =)
Попробуем найти ответы на следующие вопросы:
  ➲ Зачем нужно автоматизировать процесс релиза
     изменений в БД?
  ➲ Зачем нужна изоляция personal / dev / test / staging
     / production окружений?
  ➲ Зачем нужен continious integration процесс?
  (сломал-увидел-починил)
  ➲ Как сделать процесс внесения изменений в
     структуру БД предсказуемым?
  ➲ Как полноценно включить БД в continious
     integration процесс?
  ➲ Как поддерживать синхронизацию приложения и
     БД на всех окружениях?
Зачем нужно автоматизировать процесс
       релиза изменений в БД?
Зачем нужна изоляция
       personal
          dev
          test
        staging
      production
     окружений?
Зачем нужен continious integration процесс?
        (сломал-увидел-починил)
Hello. Am I at the office?!
 Certainly I am. I sleep on
 the operating table!
                               Как сделать процесс внесения
                                 изменений в структуру БД
                                     предсказуемым?
Как поддерживать синхронизацию приложения и БД
              на всех окружениях?
Database automated deployment and versioning ...for smart people
Модель слияния «под релиз»
 (ad hoc merging model)
➲ Эта модель разработки позволяет небольшим командам разработчиков
  вносить изменения в одну и ту же целевую БД, при этом каждый из них
  работает со своим изолированным экземпляром БД.
➲ Поскольку разработчики работают с личной БД они могут проводить отладку
  своих изменений в изоляции.
➲ Не нужно вносить никаких ручных правок. Достаточно по завершению
  разработки фичи сделать diff между рабочей и целевой БД и получить SQL с
  изменениями.
➲ Велика вероятность конфликтов слияния изменений, поскольку разработчики
  синхронизируют свои изменения с одной и той же целевой БД. Если
  разработчики внесут изменения в один и тот же объект, о велика вероятность
  что эти изменения будут бесследно потеряны во время синхронизации.
➲ Повышаются требования по координации слияний в целевую БД, их
  периодичность должна быть адекватна интенсивности вносимых изменений.
➲ Нет управления версиями на уровне объектов БД. Если был обнаружен баг, то
  становится очень сложно определить что именно привело к его возникновению.
  Кроме того операция отката БД на предыдущую версию без ручного
  вмешательства будет означать потерю всех изменений текущего релиза.
Database automated deployment and versioning ...for smart people
Версионировние и слияние на уровне объектов
 схемы БД
➲   Каждый индивидуальный объект схемы БД наховится в виде отдельного скрипта
    в системе контроля версий, что позволяет прослеживать историю изменений
    конкретного объекта.
➲   Разработчики как и в предыдущей модели работают напрямую с живой БД, что
    упрощает отладку изменений.
➲   Можно использовать некоторые возможности системы контроля для управления
    проектом. Например во время коммита оставлять комментарии и прочую
    информацию на уровне отдельных объектов схемы БД.
➲   Можно устанавливать блокировку изменений на уровне отдельных скриптов во
    время внесения изменений, если данные возможности есть у системы контроля
    версий.
➲   В случае параллельной разработки конфликты слияний разрешаются намного
    проще за счет того что изменения носят мелкодисперсный характер.


➲ Использование этой модели накладывает большую дисциплинированность и
  более формальный подход, что может быть неудобно разработчикам, которые
  работают в более динамичном режиме.
Оффлайн модель
  разработки
Оффлайн модель разработки
➲ Прямое редактирование скриптов, которые находятся под системой
  контроля версий в некоторых случаях может быть преимуществом (привет
  унылым клиентам TFS, VSS).
➲ Этот процесс уменьшает вероятность одновременного редактирования
  одного и того же скрипта в большей степени чем в предыдущей модели.
➲ Продвинутые SQL diff-инструменты типа SQL Compare 6 Professional
  автоматически определяет последовательность выполнения этих скриптов на
  целевой БД принимая во внимание их связи.


➲ Отсутствует немедленная проверка изменений, поскольку они вначале должны
  быть внесены в скрипт, а уже потом на тестовую БД.
➲ Для того чтобы проверить изменения их нужно применить к тестовой БД, что
  добавляет дополнительный шаг.
Модель инкрементных изменений
          (database migrations)
SQL-based db migrator   DSL-based db migrator
RoundhousE db versioning tools
    (part of the ChuckNorrisFramework)
➲ Name: Chuck Norris
➲ Email:
  chucknorrisframework@googlegroups.co
  m
➲ Website:
  http://groups.google.com/group/chucknor
  risframework
➲ Location: Chuck is everywhere
➲ Project: https://github.com/chucknorris/
   roundhouse
Основные возможности RoundhousE

 ➲ Поддерживает Microsoft SQL Server, Oracle,
   Access
 ➲ MySQL объявлен как alpha (моя реализация,
   которая была обкатана на проекте
   TravelConfirm)
 ➲ Заявлена поддержка PostgreSQL, SQLite
 ➲ Использует SQL для миграций БД
 ➲ Рализована на .NET, использует NHibernate
   (могу портировать на другую СУБД или на
   Mono/Linux/Mac OS X)
 ➲ Open source, лицензирована под Apache 2.0
Уникальные возможности RoundhousE
➲ Обладает достаточно умным поведением
➲ В большей степени дружественна к DBA чем другие SQL-
  based миграторы
➲ Освобождает от написания патчей/миграций для stateless
  скриптов
➲ Все скрипты разделяет на OneTime, AnyTime, Everytime
➲ Поддерживает скрипты, которые зависят от окружения
➲ Крайне рекомендована проектам с большим количеством
  процедур, функций и представлений
➲ Вместо одного каталога со свалкой миграций их несколько
  — baseline, up, functions, procedures, functions
➲ Подробное логирование процесса миграции БД
➲ Подробная регистрация успешных и неудачных миграций
Running RoundhousE v0.8.0.305 against (local) - TestRoundhousE.
Looking in C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousE for
scripts to run.
Please press enter when ready to kick...
==================================================
Setup, Backup, Create/Restore/Drop
==================================================
Creating TestRoundhousE database on (local) server if it doesn't exist.
==================================================
RoundhousE Structure
==================================================
 Running database type specific tasks.
 Creating RoundhousE schema if it doesn't exist.
 Creating [Version] table if it doesn't exist.
 Creating [ScriptsRun] table if it doesn't exist.
 Creating [ScriptsRunErrors] table if it doesn't exist.
==================================================
Versioning
==================================================
 Attempting to resolve version from
C:coderoundhousecode_dropsampledeployment_BuildInfo.xml using //buildInfo/version.
 Found version 0.8.0.305 from C:coderoundhousecode_dropsampledeployment_BuildInfo.xml.
 Migrating TestRoundhousE from version 0 to 0.8.0.305.
 Versioning TestRoundhousE database with version 0.8.0.305 based on
http://roundhouse.googlecode.com/svn.
==================================================
Migration Scripts
==================================================
Looking for Update scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEup". These
should be one time only scripts.
--------------------------------------------------
 Running 0001_CreateTables.sql on (local) - TestRoundhousE.
 Running 0001_CreateTables_NH.sql on (local) - TestRoundhousE.
 Running 0002_ChangeTable.sql on (local) - TestRoundhousE.
 Running 0003_TestBatchSplitter.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Run First After Update scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunFirstAfte
rUp".
--------------------------------------------------
--------------------------------------------------
Looking for Function scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEfunctions".
--------------------------------------------------
 Running ufn_GetDate.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for View scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEviews".
--------------------------------------------------
 Running vw_Dude.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Stored Procedure scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEsprocs".
--------------------------------------------------
 Running usp_GetDate.sql on (local) - TestRoundhousE.
 Running usp_SelectTimmy.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Run after Other Anytime Scripts scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunAfterOt
herAnyTimeScripts".
--------------------------------------------------
 Running createFiveItems.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Permission scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEpermissions
". These scripts will run every time.
--------------------------------------------------
 Running 0001_AppRole.sql on (local) - TestRoundhousE.
 Running 0002_AppReadOnlyRole.sql on (local) - TestRoundhousE.
 Running 0003_AppPermissionsWiring.sql on (local) - TestRoundhousE.
 LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the
LOCAL environment. This will run based on this check.
 Running LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql on (local) - TestRoundhousE.
 TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the
LOCAL environment. This will NOT run based on this check.
 Skipped TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql - No changes were found to run.
RoundhousE ведет
подробную регистрацию SQL-скриптов
RoundhousE отслеживает ситуации когда
OneTime скрипт был обновлен
Вопросы?




           31337

More Related Content

PPTX
Мастер класс- Maven + Jenkins
PDF
Иван Крутов - Автоматизация сборки Java-проекта
PDF
Введение в maven
PDF
JavaScript завтра / Сергей Рубанов (Exante Limited)
PDF
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
PDF
Frontend: Путешествие в мир модульных загрузчиков
PPTX
Gradle. Новый уровень автоматизации для Android
PPTX
Gwt jug basic
Мастер класс- Maven + Jenkins
Иван Крутов - Автоматизация сборки Java-проекта
Введение в maven
JavaScript завтра / Сергей Рубанов (Exante Limited)
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
Frontend: Путешествие в мир модульных загрузчиков
Gradle. Новый уровень автоматизации для Android
Gwt jug basic

What's hot (20)

PDF
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
PDF
Жизнь в изоляции / Роман Дворнов (Avito)
PDF
Борьба с багами: RailsClub на DevConf 2015
PDF
Performance engineering stories from #fdminicon Saransk
PPTX
Презентация Git-flow (на русском)
PPTX
Cистемы автоматической сборки проектов (Полина Фоминых)
PPTX
рентабельный код
PDF
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
PPTX
Chef @DevWeb
PDF
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
PDF
«DevOps — это о передаче смысла» — Александр Титов, Express 42
PDF
Фламп на спидах или ка релизить каждый день
PDF
"Доклад не про React", Антон Виноградов, MoscowJS 27
PDF
Денис Паясь
PPTX
Software Development
PDF
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
PPTX
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
PPTX
Конструктор согласований Docsvision
PPTX
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Жизнь в изоляции / Роман Дворнов (Avito)
Борьба с багами: RailsClub на DevConf 2015
Performance engineering stories from #fdminicon Saransk
Презентация Git-flow (на русском)
Cистемы автоматической сборки проектов (Полина Фоминых)
рентабельный код
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Chef @DevWeb
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
«DevOps — это о передаче смысла» — Александр Титов, Express 42
Фламп на спидах или ка релизить каждый день
"Доклад не про React", Антон Виноградов, MoscowJS 27
Денис Паясь
Software Development
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Конструктор согласований Docsvision
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
Ad

Viewers also liked (10)

PPT
Sql Database Migration
PDF
Борис Трофимов. Continuous Database migration-это просто!
PDF
TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...
PDF
PHP Tour 2016 Phinx Presentation
DOCX
Database Migration
PPTX
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
PPT
Database migration
PDF
Models for hierarchical data
PDF
Database-Migration and -Upgrade with Transportable Tablespaces
Sql Database Migration
Борис Трофимов. Continuous Database migration-это просто!
TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...
PHP Tour 2016 Phinx Presentation
Database Migration
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Database migration
Models for hierarchical data
Database-Migration and -Upgrade with Transportable Tablespaces
Ad

Similar to Database automated deployment and versioning ...for smart people (20)

PDF
Непрерывная интеграция при разработке баз данных. (Show version)
PPTX
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
PPTX
Гибкая разработка БД
PPSX
Разработка БД с использованием инструментов MS VS 2010
PPTX
метод организации репозитория исходного кода
PDF
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
PDF
High Load 2009 Imdg Presentation
PPTX
Try to be professional
PDF
Учебный день конференции HighLoad++ 2013
PPT
Embarcadero All-Access
PPTX
Учебный день конференции HighLoad++ 2013
PDF
Распространенные ошибки применения баз данных (Сергей Аверин)
PDF
Распространенные ошибки применения баз данных
PDF
Relational databases versioning
PPTX
Решение Informatica для миграции данных
PPTX
CQRS EventStore
PPT
Три точки опоры в архитектуре корпоративных систем
PPTX
презентация рамдок
PDF
IBM Rational Jazz - открытая платформа для коллективной разработки ПО
PDF
IBM Rational Jazz
Непрерывная интеграция при разработке баз данных. (Show version)
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Гибкая разработка БД
Разработка БД с использованием инструментов MS VS 2010
метод организации репозитория исходного кода
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
High Load 2009 Imdg Presentation
Try to be professional
Учебный день конференции HighLoad++ 2013
Embarcadero All-Access
Учебный день конференции HighLoad++ 2013
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных
Relational databases versioning
Решение Informatica для миграции данных
CQRS EventStore
Три точки опоры в архитектуре корпоративных систем
презентация рамдок
IBM Rational Jazz - открытая платформа для коллективной разработки ПО
IBM Rational Jazz

Database automated deployment and versioning ...for smart people

  • 2. Попробуем найти ответы на следующие вопросы: ➲ Зачем нужно автоматизировать процесс релиза изменений в БД? ➲ Зачем нужна изоляция personal / dev / test / staging / production окружений? ➲ Зачем нужен continious integration процесс? (сломал-увидел-починил) ➲ Как сделать процесс внесения изменений в структуру БД предсказуемым? ➲ Как полноценно включить БД в continious integration процесс? ➲ Как поддерживать синхронизацию приложения и БД на всех окружениях?
  • 3. Зачем нужно автоматизировать процесс релиза изменений в БД?
  • 4. Зачем нужна изоляция personal dev test staging production окружений?
  • 5. Зачем нужен continious integration процесс? (сломал-увидел-починил)
  • 6. Hello. Am I at the office?! Certainly I am. I sleep on the operating table! Как сделать процесс внесения изменений в структуру БД предсказуемым?
  • 7. Как поддерживать синхронизацию приложения и БД на всех окружениях?
  • 9. Модель слияния «под релиз» (ad hoc merging model) ➲ Эта модель разработки позволяет небольшим командам разработчиков вносить изменения в одну и ту же целевую БД, при этом каждый из них работает со своим изолированным экземпляром БД. ➲ Поскольку разработчики работают с личной БД они могут проводить отладку своих изменений в изоляции. ➲ Не нужно вносить никаких ручных правок. Достаточно по завершению разработки фичи сделать diff между рабочей и целевой БД и получить SQL с изменениями. ➲ Велика вероятность конфликтов слияния изменений, поскольку разработчики синхронизируют свои изменения с одной и той же целевой БД. Если разработчики внесут изменения в один и тот же объект, о велика вероятность что эти изменения будут бесследно потеряны во время синхронизации. ➲ Повышаются требования по координации слияний в целевую БД, их периодичность должна быть адекватна интенсивности вносимых изменений. ➲ Нет управления версиями на уровне объектов БД. Если был обнаружен баг, то становится очень сложно определить что именно привело к его возникновению. Кроме того операция отката БД на предыдущую версию без ручного вмешательства будет означать потерю всех изменений текущего релиза.
  • 11. Версионировние и слияние на уровне объектов схемы БД ➲ Каждый индивидуальный объект схемы БД наховится в виде отдельного скрипта в системе контроля версий, что позволяет прослеживать историю изменений конкретного объекта. ➲ Разработчики как и в предыдущей модели работают напрямую с живой БД, что упрощает отладку изменений. ➲ Можно использовать некоторые возможности системы контроля для управления проектом. Например во время коммита оставлять комментарии и прочую информацию на уровне отдельных объектов схемы БД. ➲ Можно устанавливать блокировку изменений на уровне отдельных скриптов во время внесения изменений, если данные возможности есть у системы контроля версий. ➲ В случае параллельной разработки конфликты слияний разрешаются намного проще за счет того что изменения носят мелкодисперсный характер. ➲ Использование этой модели накладывает большую дисциплинированность и более формальный подход, что может быть неудобно разработчикам, которые работают в более динамичном режиме.
  • 12. Оффлайн модель разработки
  • 13. Оффлайн модель разработки ➲ Прямое редактирование скриптов, которые находятся под системой контроля версий в некоторых случаях может быть преимуществом (привет унылым клиентам TFS, VSS). ➲ Этот процесс уменьшает вероятность одновременного редактирования одного и того же скрипта в большей степени чем в предыдущей модели. ➲ Продвинутые SQL diff-инструменты типа SQL Compare 6 Professional автоматически определяет последовательность выполнения этих скриптов на целевой БД принимая во внимание их связи. ➲ Отсутствует немедленная проверка изменений, поскольку они вначале должны быть внесены в скрипт, а уже потом на тестовую БД. ➲ Для того чтобы проверить изменения их нужно применить к тестовой БД, что добавляет дополнительный шаг.
  • 14. Модель инкрементных изменений (database migrations) SQL-based db migrator DSL-based db migrator
  • 15. RoundhousE db versioning tools (part of the ChuckNorrisFramework) ➲ Name: Chuck Norris ➲ Email: chucknorrisframework@googlegroups.co m ➲ Website: http://groups.google.com/group/chucknor risframework ➲ Location: Chuck is everywhere ➲ Project: https://github.com/chucknorris/ roundhouse
  • 16. Основные возможности RoundhousE ➲ Поддерживает Microsoft SQL Server, Oracle, Access ➲ MySQL объявлен как alpha (моя реализация, которая была обкатана на проекте TravelConfirm) ➲ Заявлена поддержка PostgreSQL, SQLite ➲ Использует SQL для миграций БД ➲ Рализована на .NET, использует NHibernate (могу портировать на другую СУБД или на Mono/Linux/Mac OS X) ➲ Open source, лицензирована под Apache 2.0
  • 17. Уникальные возможности RoundhousE ➲ Обладает достаточно умным поведением ➲ В большей степени дружественна к DBA чем другие SQL- based миграторы ➲ Освобождает от написания патчей/миграций для stateless скриптов ➲ Все скрипты разделяет на OneTime, AnyTime, Everytime ➲ Поддерживает скрипты, которые зависят от окружения ➲ Крайне рекомендована проектам с большим количеством процедур, функций и представлений ➲ Вместо одного каталога со свалкой миграций их несколько — baseline, up, functions, procedures, functions ➲ Подробное логирование процесса миграции БД ➲ Подробная регистрация успешных и неудачных миграций
  • 18. Running RoundhousE v0.8.0.305 against (local) - TestRoundhousE. Looking in C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousE for scripts to run. Please press enter when ready to kick... ================================================== Setup, Backup, Create/Restore/Drop ================================================== Creating TestRoundhousE database on (local) server if it doesn't exist. ================================================== RoundhousE Structure ================================================== Running database type specific tasks. Creating RoundhousE schema if it doesn't exist. Creating [Version] table if it doesn't exist. Creating [ScriptsRun] table if it doesn't exist. Creating [ScriptsRunErrors] table if it doesn't exist. ================================================== Versioning ================================================== Attempting to resolve version from C:coderoundhousecode_dropsampledeployment_BuildInfo.xml using //buildInfo/version. Found version 0.8.0.305 from C:coderoundhousecode_dropsampledeployment_BuildInfo.xml. Migrating TestRoundhousE from version 0 to 0.8.0.305. Versioning TestRoundhousE database with version 0.8.0.305 based on http://roundhouse.googlecode.com/svn.
  • 19. ================================================== Migration Scripts ================================================== Looking for Update scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEup". These should be one time only scripts. -------------------------------------------------- Running 0001_CreateTables.sql on (local) - TestRoundhousE. Running 0001_CreateTables_NH.sql on (local) - TestRoundhousE. Running 0002_ChangeTable.sql on (local) - TestRoundhousE. Running 0003_TestBatchSplitter.sql on (local) - TestRoundhousE. -------------------------------------------------- Looking for Run First After Update scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunFirstAfte rUp". -------------------------------------------------- -------------------------------------------------- Looking for Function scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEfunctions". -------------------------------------------------- Running ufn_GetDate.sql on (local) - TestRoundhousE. -------------------------------------------------- Looking for View scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEviews". -------------------------------------------------- Running vw_Dude.sql on (local) - TestRoundhousE. --------------------------------------------------
  • 20. Looking for Stored Procedure scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEsprocs". -------------------------------------------------- Running usp_GetDate.sql on (local) - TestRoundhousE. Running usp_SelectTimmy.sql on (local) - TestRoundhousE. -------------------------------------------------- Looking for Run after Other Anytime Scripts scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunAfterOt herAnyTimeScripts". -------------------------------------------------- Running createFiveItems.sql on (local) - TestRoundhousE. -------------------------------------------------- Looking for Permission scripts in "C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEpermissions ". These scripts will run every time. -------------------------------------------------- Running 0001_AppRole.sql on (local) - TestRoundhousE. Running 0002_AppReadOnlyRole.sql on (local) - TestRoundhousE. Running 0003_AppPermissionsWiring.sql on (local) - TestRoundhousE. LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the LOCAL environment. This will run based on this check. Running LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql on (local) - TestRoundhousE. TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the LOCAL environment. This will NOT run based on this check. Skipped TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql - No changes were found to run.
  • 22. RoundhousE отслеживает ситуации когда OneTime скрипт был обновлен