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

How do I integrate Liquibase within an existing CI/CD pipeline in large organization?

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

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

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

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

  4. 是否与 SQL Developer 进行了一些集成?我的意思是,假设一个用户 通过 sql 开发人员更改对象,然后会发生什么?

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

  1. 是的,Liquibase 适用于任何源代码管理。大多数用户都在使用 Git。但是你可以使用 Git, TFS, SVN, CVS... 一旦你启动并 运行 Liquibase,你只需要确保你的脚本 在源代码管理中,你很高兴。
  2. 除了第 3 方源代码控制工具外,Liquibase 还跟踪 table 称为 "DATABASECHANGELOG" table,用于跟踪在使用 Liquibase 部署时应用到数据库的更改。 以下是有关入门和 Liquibase 工作原理的更多信息。 https://www.liquibase.org/get_started/how-lb-works.html
  3. Liquibase 还有一个在内部使用的 table,称为 "DATABASECHANGELOGLOCK" table。 此 table 旨在防止多个 Liquibase 用户 运行 同时部署 - 可能使数据库处于不良状态。完成 Liquibase 部署(liquibase 更新命令)后,"DATABASECHANGELOGLOCK" 将允许下一个 Liquibase 用户进行部署。
  4. 您可以同时使用 SQL 和 XML 格式(甚至 JSON 和 YAML 格式)。