如何将 Liquibase 集成到大型组织的现有 CI/CD 管道中?

Car*_*unt 5 continuous-integration liquibase continuous-deployment devops

我们在一个非常大的组织中工作,有许多数据库(多种类型)、许多模式、许多用户。

  1. LB 是否必须使用某些源代码管理(当组织中存在许多用户并使用相同的数据库、相同的架构等时锁定文件)?

  2. 在一个非常大的组织、许多并发用户中使用 LB 的最佳实践是什么?

  3. SQLCL可以通用sql格式类型还是只是xml格式类型?

  4. 是否有与 SQL Developer 的集成?我的意思是,假设用户通过 sql Developer 更改对象,那么会发生什么?

小智 4

我们总是收到此类问题,在人们掌握了如何自动化数据库更改之后,下一步通常是将其添加到现有的 CI/CD 工作流程中。

  1. 是的,Liquibase 可与任何源代码管理系统配合使用。大多数用户都在使用 Git。但是您可以使用 Git、TFS、SVN、CVS...一旦您启动并运行 Liquibase,您只需确保您的脚本处于源代码控制中,就可以开始使用了。
  2. 除了第 3 方源代码控制工具之外,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 格式)。