gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:29:32 25 4
gpt4 key购买 nike

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

  • LB 是否必须使用一些源代码控制(用于锁定文件
    当组织中存在许多用户并使用相同的数据库时,
    相同的架构等)?
  • 在非常大的情况下与 LB 合作的最佳实践是什么?
    组织,许多并发用户?
  • SQLCL 可以是通用 sql 格式类型还是只是 xml 格式类型?
  • 是否与 SQL Developer 有一些集成?我的意思是,假设一个用户
    通过 sql developer 更改对象,然后会发生什么?
  • 最佳答案

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

  • 是的,Liquibase 适用于任何源代码控制。大多数用户都在使用
    git 。但是你可以使用 Git、TFS、SVN、CVS...一旦你启动并
    与 Liquibase 一起运行,您只需要确保您的脚本
    处于源代码控制中,您很高兴。
  • 除了 3rd 方源代码控制工具,Liquibase 还具有称为“DATABASECHANGELOG”表的跟踪表,用于跟踪在使用 Liquibase 部署时应用于数据库的更改。
    以下是有关入门和 Liquibase 工作原理的更多信息。 https://www.liquibase.org/get_started/how-lb-works.html
  • Liquibase 还有一张它在内部使用的表,称为“DATABASECHANGELOGLOCK”表。
    该表旨在防止多个 Liquibase 用户同时运行部署 - 可能使数据库处于不良状态。一旦 Liquibase 部署(liquibase 更新命令)完成,“DATABASECHANGELOGLOCK”将允许下一个 Liquibase 用户进行部署。
  • 您可以使用 SQL 和 XML 格式(甚至 JSON 和 YAML 格式)。
  • 使用 SQL 时,您有几个选择:
  • 最好的选择是使用 Formatted SQL changeLogs https://www.liquibase.org/documentation/sql_format.html
    https://www.liquibase.org/get_started/quickstart_sql.html
  • 您可以使用从 XML 更改日志
  • 引用的纯原始 SQL 文件
  • https://www.liquibase.org/documentation/changes/sql_file.html
  • 使用 XML 时,可以在以下页面(页面左侧)中找到所有可用的更改类型(也称为更改集)
    https://www.liquibase.org/documentation/changes/
  • XML changeLog 更不可知,有时可以在进行迁移时用于不同的数据库平台。此外,XML 中的许多更改类型都具有自动回滚的能力。使用 XML 可以做到这一点的原因是因为 Liquibase 使用它自己的内置函数来确定像“创建表”这样的逆语句是“删除表”。
  • 对于每个变更集,您可以了解它们是否符合自动回滚条件(在页面底部)。例如,创建表 changeSet 将是 Auto Rollback = yes。
    https://www.liquibase.org/documentation/changes/create_table.html
  • 关于continuous-integration - 如何将 Liquibase 集成到大型组织的现有 CI/CD 管道中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61507247/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com