如何将 Liquibase 集成到大型组织的现有 CI/CD 管道中?
How do I integrate Liquibase within an existing CI/CD pipeline in large organization?
我们在一个非常大的组织中工作,有很多数据库(多种类型)、很多模式、很多用户。
LB 是否必须使用某些源代码管理(用于锁定文件
当组织中存在许多用户并使用相同的数据库时,
相同的架构等)?
在非常大的环境中使用 LB 的最佳实践是什么
组织,许多并发用户?
可以SQLCL通用sql格式类型还是只是xml格式类型?
是否与 SQL Developer 进行了一些集成?我的意思是,假设一个用户
通过 sql 开发人员更改对象,然后会发生什么?
我们总是收到此类问题,在人们掌握了如何自动更改数据库之后,下一步通常是将其添加到现有的 CI/CD 工作流程中。
- 是的,Liquibase 适用于任何源代码管理。大多数用户都在使用
Git。但是你可以使用 Git, TFS, SVN, CVS... 一旦你启动并
运行 Liquibase,你只需要确保你的脚本
在源代码管理中,你很高兴。
- 除了第 3 方源代码控制工具外,Liquibase 还跟踪 table 称为 "DATABASECHANGELOG" table,用于跟踪在使用 Liquibase 部署时应用到数据库的更改。
以下是有关入门和 Liquibase 工作原理的更多信息。 https://www.liquibase.org/get_started/how-lb-works.html
- Liquibase 还有一个在内部使用的 table,称为 "DATABASECHANGELOGLOCK" table。
此 table 旨在防止多个 Liquibase 用户 运行 同时部署 - 可能使数据库处于不良状态。完成 Liquibase 部署(liquibase 更新命令)后,"DATABASECHANGELOGLOCK" 将允许下一个 Liquibase 用户进行部署。
- 您可以同时使用 SQL 和 XML 格式(甚至 JSON 和 YAML 格式)。
- 使用 SQL 时,您有几个选择:
- 最佳选择是使用格式化 SQL changeLogs https://www.liquibase.org/documentation/sql_format.html
https://www.liquibase.org/get_started/quickstart_sql.html
- 您可以使用从 XML changeLog
引用的原始 SQL 文件
- https://www.liquibase.org/documentation/changes/sql_file.html
- 使用XML时,可以在下一页(页面左侧)中找到所有可用的更改类型(也称为changeSets)
https://www.liquibase.org/documentation/changes/
- XML changeLog 更不可知,有时在进行迁移时可用于不同的数据库平台。此外,XML 中的许多更改类型都可以自动回滚。 XML 之所以可行,是因为 Liquibase 使用它自己的内置函数来计算像 "create table" 这样的逆语句是 "drop table".
- 对于其中的每一个变更集,您都可以了解它们是否符合自动回滚条件(在页面底部)。例如,create table changeSet 将自动回滚 = 是。
https://www.liquibase.org/documentation/changes/create_table.html
我们在一个非常大的组织中工作,有很多数据库(多种类型)、很多模式、很多用户。
LB 是否必须使用某些源代码管理(用于锁定文件 当组织中存在许多用户并使用相同的数据库时, 相同的架构等)?
在非常大的环境中使用 LB 的最佳实践是什么 组织,许多并发用户?
可以SQLCL通用sql格式类型还是只是xml格式类型?
是否与 SQL Developer 进行了一些集成?我的意思是,假设一个用户 通过 sql 开发人员更改对象,然后会发生什么?
我们总是收到此类问题,在人们掌握了如何自动更改数据库之后,下一步通常是将其添加到现有的 CI/CD 工作流程中。
- 是的,Liquibase 适用于任何源代码管理。大多数用户都在使用 Git。但是你可以使用 Git, TFS, SVN, CVS... 一旦你启动并 运行 Liquibase,你只需要确保你的脚本 在源代码管理中,你很高兴。
- 除了第 3 方源代码控制工具外,Liquibase 还跟踪 table 称为 "DATABASECHANGELOG" table,用于跟踪在使用 Liquibase 部署时应用到数据库的更改。 以下是有关入门和 Liquibase 工作原理的更多信息。 https://www.liquibase.org/get_started/how-lb-works.html
- Liquibase 还有一个在内部使用的 table,称为 "DATABASECHANGELOGLOCK" table。 此 table 旨在防止多个 Liquibase 用户 运行 同时部署 - 可能使数据库处于不良状态。完成 Liquibase 部署(liquibase 更新命令)后,"DATABASECHANGELOGLOCK" 将允许下一个 Liquibase 用户进行部署。
- 您可以同时使用 SQL 和 XML 格式(甚至 JSON 和 YAML 格式)。
- 使用 SQL 时,您有几个选择:
- 最佳选择是使用格式化 SQL changeLogs https://www.liquibase.org/documentation/sql_format.html https://www.liquibase.org/get_started/quickstart_sql.html
- 您可以使用从 XML changeLog 引用的原始 SQL 文件
- https://www.liquibase.org/documentation/changes/sql_file.html
- 使用XML时,可以在下一页(页面左侧)中找到所有可用的更改类型(也称为changeSets) https://www.liquibase.org/documentation/changes/
- XML changeLog 更不可知,有时在进行迁移时可用于不同的数据库平台。此外,XML 中的许多更改类型都可以自动回滚。 XML 之所以可行,是因为 Liquibase 使用它自己的内置函数来计算像 "create table" 这样的逆语句是 "drop table".
- 对于其中的每一个变更集,您都可以了解它们是否符合自动回滚条件(在页面底部)。例如,create table changeSet 将自动回滚 = 是。 https://www.liquibase.org/documentation/changes/create_table.html
- 使用 SQL 时,您有几个选择: