Liquibase mysql模式改变”width=数据库即代码服务是近年来兴起的一个新概念。正如我们已经知道的,我们有应用程序代码的部署解决方案。使用Git和Jenkins这样的工具,管理和跟踪应用程序更改非常容易。

现在这个概念也应用于数据库领域,假设SQL作为管理数据库更改(DDL、DML)的代码,与应用程序处理代码的方式相同。从数据库的角度来看,这允许跟踪修改的历史,允许快速检测和解决问题。

Liquibase是什么?

Liquibase是一个开源的、独立于数据库的框架,用于部署、管理和跟踪数据库模式更改。对数据库的所有修改或更改都存储在称为更改集的文本文件(XML、YAML、JSON或SQL)中。为了具体地按顺序列出数据库更改,Liquibase使用了更改日志。更改日志作为更改的记录,并包含了Liquibase可以在目标数据库上执行的更改集列表。

让我们看看如何使用这个工具设置Liquibase并执行一些数据库更改。

安装Liquibase

1.下载并提取Liquibase文件。

2.将安装目录定义为环境路径,并在“~/”中添加相同的目录。Bashrc”文件。

3.验证安装。

请注意- Liquibase需要在您的系统上设置Java(JDK)才能运行。

如何使用Liquibase与MySQL

1.<年代pan style="font-weight: 400;">要使用Liquibase和MySQL,我们需要JDBC驱动程序JAR文件。复制liquibase内部库中的jar文件。

2.<年代pan style="font-weight: 400;">首先,用下面的选项初始化一个项目。

我们来看看这些参数是什么。

3.<年代pan style="font-weight: 400;">然后,我们可以在项目位置创建一个手动文件(“changelog.sql”),并定义变更集。用于定义部署更改的其他格式包括(.xml、.json或.yaml)。

4.<年代pan style="font-weight: 400;">验证数据库连接是否成功。在Liquibase项目文件夹中,运行以下命令。

5.执行前检查SQL。

6.<年代pan style="font-weight: 400;">最后,部署更改。

输出:

7.<年代pan style="font-weight: 400;">验证数据库中的更改。此外,您还可以观察到同一个数据库中的额外表,这些表捕获了更多的执行统计信息。

a)表:DATABASECHANGELOG

请注意—每个更改集在表中作为一行跟踪,并由id、作者和文件名字段标识。

b)<年代pan style="font-weight: 400;">表:DATABASECHANGELOGLOCK

注意:为了保证一次只运行一个Liquibase实例,Liquibase使用DATABASECHANGELOGLOCK表。

8.<年代pan style="font-weight: 400;">通过运行命令“liquibase history”,我们也可以检查过去的部署。

至此,我们已经成功地在目标数据库中部署了更改。接下来,我们将了解如何跟踪更改并执行回滚操作。

为了对某些DDL或DML执行回滚,我们需要在.sql文件中添加回滚更改集详细信息。

让我们看看执行回滚操作的步骤

1)创建部署文件“deployment.”sql” inside the project location with the below changeset details.

选项的细节:

AJ:1 =>表示作者:id

label:label1 =>指定标签,这是对变更集(如上下文)进行分类的通用方法。

context:context1 =>如果在运行时传递了特定的上下文,则执行更改。任何字符串都可以用作上下文名称

2)<年代pan style="font-weight: 400;">接下来,运行部署。在项目位置中运行以下命令。

3)<年代pan style="font-weight: 400;">现在,添加标签来管理回滚场景。

4)默认在最近的部署中添加标签。我们可以在下面的表格中检查相同的情况。

5)<年代pan style="font-weight: 400;">让我们回滚已执行的更改。该命令将恢复在指定标记之后对数据库所做的所有更改。

输出:

请注意发布此活动后,我们将不再在数据库中看到这些表(P1,P2)。作为回滚操作,这些表现在被删除了。

或者,我们也可以根据时间戳执行回滚活动。下面的命令用于将对数据库所做的所有更改从当前日期恢复到指定的日期和时间。

例如,

输出:

Liquibase与Percona Toolkit的集雷竞技下载官网成(pt-osc)

的pt-online-schema-change特性提供了一个Liquibase扩展雷竞技下载官网Percona工具包。通过使用pt-osc而不是SQL,这个扩展替代了几个默认更改。借助pt-online-schema-change工具,可以升级数据库而不锁定任何表。

让我们看看使用pt-osc和Liquibase扩展的步骤

1)<年代pan style="font-weight: 400;">下载Percona Liq雷竞技下载官网uibase jar文件。

2)<年代pan style="font-weight: 400;">将jar文件复制到Liquibase内部库文件夹。

3)<年代pan style="font-weight: 400;">在changelog.xml文件中添加以下更改集,它基本上在表:liq1中添加了一列(“osc”)。

请注意-这里我们提到使用Percona= " true "雷竞技下载官网,它可以通过pt-osc来执行DDL。

4)<年代pan style="font-weight: 400;">在实际实现之前验证部署更改。我们可以在下面看到将在下一阶段执行的pt-osc命令参考。

输出

5)<年代pan style="font-weight: 400;">最后,运行部署。

总结

除了MySQL, Liquibase还支持其他流行的数据库,如PostgreSQL、Cassandra和MongoDB。开发人员从中受益匪浅,因为他们可以合作编写自己的与数据库相关的脚本,然后将它们作为代码的一部分提交。它维护所有更改的版本,就像任何其他版本控制更改一样,并支持SQL代码的分支和合并。

进一步的阅读
订阅
通知的
客人”年代rc=