Как интегрировать Liquibase в существующий конвейер CI / CD в большой организации? - PullRequest
1 голос
/ 29 апреля 2020

Мы работаем в очень большой организации, много баз данных (многих типов), много схем, много пользователей.

  1. Должен ли LB работать с некоторым Source Control (для блокировки файлы, когда в организации существует много пользователей, использующих одну и ту же БД, одну и ту же схему и т. д. c)?

  2. Какова наилучшая практика работы с LB в очень большой организации много одновременных пользователей?

  3. Может ли SQLCL общий sql тип формата или просто xml тип формата?

  4. Есть ли некоторая интеграция с SQL Разработчик? Я имею в виду, предположим, что пользователь изменяет объекты с помощью sql разработчика, что происходит тогда?

1 Ответ

1 голос
/ 05 мая 2020

Мы задаем этот тип вопросов постоянно, после того, как люди узнают, как автоматизировать изменения БД, следующим шагом, как правило, является добавление его в существующий рабочий процесс CI / CD.

  1. Да, Liquibase работает с любым источником контроля. Большинство пользователей используют Git. Но вы можете использовать Git, TFS, SVN, CVS ... После того, как вы запустите Liquibase, вам просто нужно убедиться, что ваши скрипты находятся под контролем исходного кода, и вы готовы к go.
  2. Помимо сторонних инструментов контроля версий, в Liquibase есть таблицы отслеживания, называемые таблицами «DATABASECHANGELOG», которые отслеживают изменения, примененные к вашей базе данных при использовании развертываний Liquibase. Вот еще немного информации о том, как начать и как работает Liquibase. https://www.liquibase.org/get_started/how-lb-works.html
  3. У Liquibase есть еще одна таблица, которая использует внутренне называемую таблицу «DATABASECHANGELOGLOCK». Эта таблица была разработана для предотвращения одновременного выполнения развертывания несколькими пользователями Liquibase, что может привести к плохому состоянию базы данных. Как только развертывание Liquibase (команда обновления liquibase) выполнено, «DATABASECHANGELOGLOCK» позволит следующему пользователю Liquibase выполнить развертывание.
  4. Вы можете использовать форматы SQL и XML (или даже JSON). и форматы YAML).
    • При использовании SQL у вас есть несколько вариантов:
    • При использовании XML можно найти все доступные типы изменений (также называемые наборами изменений), доступные на следующей странице (в левой части страницы) https://www.liquibase.org/documentation/changes/
    • XML changeLog более агностичен c и иногда может использоваться для разных платформ баз данных при выполнении миграций. Кроме того, многие типы изменений в XML имеют возможность автоматического отката. Причина, по которой это возможно с XML, заключается в том, что Liquibase использует свои собственные встроенные функции, чтобы вычислять обратные операторы, такие как «создать таблицу», которая будет «отбрасывать таблицу».
    • Для каждого из этих наборов изменений, которые вы можете найти если они имеют право на автоматический откат (внизу страницы). Например, создать таблицу changeSet будет Auto Rollback = yes. https://www.liquibase.org/documentation/changes/create_table.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...