数据库版本控制-liquibase

目录

一:前言

二:选型

三:java项目使用,boot

3.1添加依赖

3.2增加配置

3.3支持的配置文件种类以及选型

四:常见问题

4.1锁等待问题

4.2杀进程问题

4.3待完善

五.liquibase使用开发规范

六.额外扩展

6.1.例如版本控制调用的update方法

6.2.待完善


一:前言

Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。    

它将所有数据库的变化(包括结构和数据)都保存在 changelog 文件中,便于版本控制,它的目标是提供一种数据库类型无关的解决方案,通过下项目初始化加载时扫描配置文件来实现数据库的版本迭代。

二:选型

Java(SpringBoot)数据库版本管理工具目前主流的就是flyway和liquibase。

Flyway

Liquibase

支持数据库

Oracle、SQL Server、DB2、H2、Amazon RDS、Google Cloud SQL、Heroku等

oracle、DB2、H2、MariaDB、SQL Server、SQLite、Azure SQL、Amazon RDS、Amazon Aurora等

执行脚本

纯SQL(支持多种SQL语法)

Java(主要用于更复杂的转换)

日志文件支持多种格式,如 XML, YAML, JSON, SQL等

跨平台

支持

运行方式

命令行、Spring 集成、Maven 插件、

命令行、Spring 集成、Maven 插件、Gradle 插件等

三:java项目使用,boot

3.1添加依赖

       <!-- liquibase -->
<dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
</dependency>

3.2增加配置

spring:
    # liquibase配置
   liquibase:
    enabled: true
    change-log: "classpath:/db/changelog/db.changelog-master.yaml"
  
额外扩展:
无change-log配置时,默认扫描路径是:classpath:/db/changelog/db.changeog-mster.yaml

3.3支持的配置文件种类以及选型

即3.2中的配置文件,改配置文件中指定项目数据库版本控制扫描文件路径 

方式1:范围扫描   例如某个路径下所以文件

方式2:扫描文件单独配置   一个include标签对应一个配置文件

日志文件支持多种格式,如 XML, YAML, JSON, SQL等 建议使用xml标签方式,比较方便 1.使用sql标签,内容为数据库相关变动,sql语句即可 2.changeSet下标准数据库操作标签, 例如:建表createTable标签 

四:常见问题

4.1锁等待问题

 

 

4.2杀进程问题

杀进程停止服务,可能导致liquibaset未正常结束,日志表处于锁的状态,和4.1一致,解开锁,要考虑是否前后冲突的问题s

4.3初始化bean问题

场景描述: 例如bean内要在项目启动中读取数据库等操作。 由于liquibase是bean之后操作的,第一次项目启动,没有相关表会导致项目启动报错,建议加上懒加载,项目启动不加载

4.4changeset执行后不允许更改

 liquiase以日志的方式执行版本控制, 第一次执行完成后数据库有一张日志表,记录本次执行配置并记录加密的配置内容, 下一次启动,执行update,会调用valid校验,当前配置和之前配置是否一直,不一致就会报错;

五.liquibase使用开发规范

根据项目决定

六.额外扩展

6.1.例如版本控制调用的update方法

1.锁等待、且判断,加锁

2历史.数据校验

3.执行数据库配置文件,解锁

 

6.2.版本回滚 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供关于Liquibase的教程。Liquibase是一个用于数据库版本控制的开源工具,它可以帮助您管理数据库模式和数据的变更。 以下是Liquibase教程的一些主要步骤: 1. 安装Liquibase:首先,您需要下载并安装Liquibase。您可以从Liquibase官方网站(https://www.liquibase.org/)下载最新的稳定版本。 2. 配置数据库:在开始使用Liquibase之前,您需要配置您的数据库连接。您可以在Liquibase的配置文件(通常是一个XML文件)中指定数据库的连接URL、用户名和密码等信息。 3. 创建数据库变更脚本:Liquibase使用变更脚本来跟踪数据库的变化。您可以通过编写包含DDL(数据定义语言)和DML(数据操作语言)语句的XML、YAML或SQL文件来定义这些变更。每个变更脚本都有一个唯一的标识符,以便Liquibase可以跟踪和应用它们的顺序。 4. 运行Liquibase命令:一旦您创建了数据库变更脚本,您可以使用Liquibase命令行工具来执行这些变更。例如,您可以使用"liquibase update"命令来应用尚未应用的变更。 5. 版本控制:Liquibase允许您对数据库模式和数据进行版本控制。您可以使用"Liquibase update"命令来将数据库更新到特定版本。此外,Liquibase还提供了回滚和验证等功能,以便您可以管理和维护数据库的变化历史记录。 这只是Liquibase教程的一个简单概述,您可以在Liquibase官方文档中找到更详细的信息和示例。祝您使用Liquibase愉快!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值