Liquibase的简单使用[通俗易懂]

Liquibase的简单使用[通俗易懂]`LiquiBase`是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其有点主要有以下:

  • 支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Server, DB2等;
  • 支持多开发者的协作维护;
  • 日志文件支持多种格式,如XML, YAML, JSON, SQL等;
  • 支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等。

更多详情介绍,可以浏览官网doc

之所以选择使用liquibase,原因其实挺尴尬的,由于我不会使用容器化技术,不会写dockfile来运行项目初始化sql脚本,就想有没有什么简单方便的形式,最后看中了liquibase,配置起来确实简单方便。
我是用命令行的形式生成changeLog,然后再集成到springboot中。官网上提供的还有基于ant、maven和服务端的使用的方式,以后再研究。

  1. 下载liquibase的安装包,解压到指定目录下;
    Liquibase的简单使用[通俗易懂]

  2. 通过generateChangeLog生成现有数据库的changeLog文件;

     liquibase --driver=com.mysql.jdbc.Driver --classpath=mysql-connector-java-5.1.27.jar --changeLogFile=./dbchangelog.xml --url="jdbc:mysql://localhost:3306/blog" --username=root --password=root generateChangeLog
    

generateChangeLog命令默认只会创建数据库结构的变更日志文件,如果希望创建插入数据的变更日志文件,可以使用参数diffTypes,该参数包括如下可选项:

  • tables [DEFAULT]表

  • columns [DEFAULT] 列

  • views [DEFAULT] 视图

  • primaryKeys [DEFAULT] 主键

  • indexes [DEFAULT] 索引

  • foreignKeys [DEFAULT]

  • sequences [DEFAULT]

  • data
    例如生成数据:

      liquibase --driver=com.mysql.jdbc.Driver --classpath=mysql-connector-java-5.1.27.jar --changeLogFile=./dbchangelog.xml --url="jdbc:mysql://localhost:3306/blog" --username=root --password=root --diffTypes=data generateChangeLog
    

我分别生成了两个changeLog文件,一个是inti-table.xml; 一个是init-data.xml。
3.项目中配置liquibase
首先在项目中添加支持:

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

通过查看源码,我们能看到默认的配置文件存放的位置:
Liquibase的简单使用[通俗易懂]

这里我没有使用默认的配置,指定了一个自己的路径,只需要在application.properties中添加如下配置:

#liquibase
liquibase.change-log=classpath:/liquibase/master.xml

--master.xml文件内容,通过inclue标签引入了两个changelog,就是之前的表结构和表数据。

<?xml version="1.0" encoding="utf-8"?>
    <databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">

    <include file="classpath:liquibase/change_log/init-table.xml" relativeToChangelogFile="false"/>
    <include file="classpath:liquibase/change_log/init-data.xml" relativeToChangelogFile="false"/>
 </databaseChangeLog>

项目中的目录结构如下图所示:
Liquibase的简单使用[通俗易懂]

到此已经位置好了,启动一下项目,控制台打印出liquibase初始化信息,这时候查看数据库,会表现数据库已经初始完毕,后面数据库如果有变动,可以再生成新的changelog文件,再次添加到项目中,达到持续集成的效果。整个项目的源代码已经托管到github上了,可以点击查看

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167005.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月5日 下午11:16
下一篇 2022年8月5日 下午11:36


相关推荐

  • Python 二维列表

    Python 二维列表一 概念二维列表的元素还是列表 列表的嵌套 称之为二维列表 需要通过行标和列标来访问二维列表的元素二 创建二维列表 1 追加一维列标来生成二维列标生成一个 4 行 3 列的二维列表 row1 3 4 5 row2 1 5 9 row3 2 5 8 row4 7 8 9 matrix matrix append row1 matrix append row2 matrix append row3 matrix append row4 pr

    2026年3月26日
    2
  • PyCharm激活码永久有效PyCharm2019.1.1激活码教程-持续更新,一步到位[通俗易懂]

    PyCharm激活码永久有效PyCharm2019.1.1激活码教程-持续更新,一步到位[通俗易懂]PyCharm激活码永久有效2019.1.1激活码教程-Windows版永久激活-持续更新,Idea激活码2019.1.1成功激活

    2022年6月19日
    46
  • yourphp常用标签

    yourphp常用标签

    2021年10月9日
    81
  • 软件设计说明书模版(申请软件著作权可供参考)

    软件设计说明书模版(申请软件著作权可供参考)1 引言 1 1 编写目的 1 2 项目背景 1 2 项目概要总体要求 2 1 系统功能概述 2 2 系统功能要求软件开发 3 1 软件需求分析 3 2 软件的概要设计 3 2 1 软件概要设计说明 3 2 3 基本设计概念和处理流程 3 3 软件的详细设计 3 3 1 系统结构 3 3 2 模块设计说明 3 3 3 爬虫模块 3 3 4 日志模块 3 3 5 数

    2026年3月17日
    2
  • 微信开放平台—-微信扫码登录

    微信开放平台—-微信扫码登录告知:所有操作是基于域名已备案,并且具有企业级微信公众号!1.准备工作   1.1.注册微信开放平台帐号       https://open.weixin.qq.com   1.2.创建应用(网站应用),填写资料https://open.weixin.qq.com/cgi-bin/appcreate?t=manage/createWeb&amp;type=…

    2022年6月11日
    57
  • 音乐推荐系统

    音乐推荐系统音乐推荐系统流程 1 对三个数据进行预处理 合并用户与物品相关信息 数据字段包含 itemid userid 用户信息 年龄 性别 收入 地区 物品信息 名字 描述 时长 标签 用户行为数据 收听时长 等 2 粗排召回阶段使用 CB 算法 基于内容进行 jieba 中文分词 计算 itemid 对应分词的 tfidf 分数 整理训练数据 使用 mr 协同过滤进行相关性计算 训练得到物品之间对应分数 item item CF 算法则通过协同过滤将 UI 矩阵转成 II 矩阵 格式化数据后将结果按 k v 形式批量灌入 re

    2026年3月26日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号