liquibase mysql_liquibase使用教程

本文介绍了如何在项目中集成Liquibase,详细步骤包括添加依赖、配置liquibase.properties文件、设置pom.xml中的liquibase插件、创建changelog主文件,以及执行changelog进行数据库更新。同时,列举了Liquibase的各种命令,包括update、rollback、diff和文档生成等,便于理解和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中引入liquibase过程:

1、父项目 pom.xml 中添加依赖

mysql

mysql-connector-java

5.1.30

org.liquibase

liquibase-core

3.5.5

2、添加liquibase.properties文件

#liquibase

changeLogFile=src/main/resources/liquibase/db.changelog-master.xml

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

username=root

password=egova

3、父项目 pom中添加liquibase插件

org.liquibase

liquibase-maven-plugin

3.5.1

src/main/resources/liquibase.properties

true

src/main/resources/liquibase/changelog_dev.xml

4、新建changelog主文件入口: db.changelog-master.xml

http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

5、打开maven命令框:可以选择模块

7b79c8f7298ae09b84dcbc42a0be09ac.png

6、生成changelog

liquibase:generateChangeLog

(1) 对当前数据库状态生成 changlog:

mvn liquibase:generateChangeLog

(2)只对数据生成 changelog ,(先用别的方式往数据库创建数据后再用此方式生成changelog)

mvn liquibase:generateChangeLog -Dliquibase.diffTypes=data

区别:前者是在changelog中追加表创建语句,生成建表语句和数据插入语句,如果表语句已存在,则只生成建表语句:如图

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

View Code

7、执行changelog,写入数据库

在changeset中添加createTable语句,执行liquibase,使用命令:

liquibase:update  将changelog变化的内容写入数据库

liquibase:updateSQL  检查changelog语法的合法性

8、在项目中使用liquibase

@BeanpublicSpringLiquibase liquibase(DataSource dataSource, LiquibaseProperties liquibaseProperties) {

SpringLiquibase liquibase= newSpringLiquibase(taskExecutor, env);

liquibase.setDataSource(dataSource);//制定changelog的位置,这里使用的一个master文件引用其他文件的方式

liquibase.setChangeLog("classpath:config/liquibase/db.changelog-master.xml");

liquibase.setContexts(liquibaseProperties.getContexts());

liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema());

liquibase.setDropFirst(liquibaseProperties.isDropFirst());returnliquibase;

}

liquibase命令大全

命令名称命令描述

update

更新数据库到当前版本

updateSQL

写入SQL将数据库更新到currentversion或STDOUT

updateCount

将下一个NUM更改应用到数据库

updateCountSQL

写入SQL以将下一个NUM更改应用到数据库

updateToTag

使用指定的标记将数据库更新到变更集

updateToTagSQL

使用指定的标记将SQL写入(到标准输出)到更改集

rollback

将数据库回滚到指定标签的状态is was

rollbackSQL

生成数据库回滚到指定标签的sql

rollbackToDate

将数据库回滚到给定日期/时间的状态is was。日期格式:yyyy-MM-dd 'HH: mm: ss

rollbackToDateSQL

写入SQL以将数据库回滚到给定日期/时间版本的状态到STDOUT

rollbackCount

回滚应用于数据库的最后一个更改集

rollbackCountSQL

写入SQL以回滚最后一个更改集到应用于数据库的stdoutapply

futureRollbackSQL

写入SQL,以便在更改日志中的更改完成后将数据库回滚到当前状态

futureRollbackSQL

在更改日志中的更改完成后,写入SQL以将数据库回滚到当前状态

futureRollbackFromTagSQL

写入(到标准输出)SQL,以便在更改后将数据库回滚到其当前状态

updateTestingRollback

更新数据库,然后再次回滚更改。用于测试回滚支持

generateChangeLog

写入更改日志XML以将数据库的当前状态复制到标准输出

snapshot

将数据库的当前状态写入标准输出

snapshotReference

将referenceUrl数据库的当前状态写入标准输出

Diff Commands

数据库对比命令

diff [diff parameters]

数据库对比命令

diffChangeLog [diff parameters]

数据库对比日志

Documentation Commands

文档命令

dbDoc

基于当前数据库和更改日志生成类似javadoc的文档

Maintenance Commands

维护命令

tag

给当前的数据库打标签,方便日后回滚

tagExists

检查对应的标签是否存在

status [--verbose]

输出为执行changeset的行数

unexpectedChangeSets[--verbose]

输出本地不存在changeset 行数

validate

检查是否有错误的changelog

calculateCheckSum

检查指定changeset id 的checksum值 格式为 filepath::id::author

clearCheckSums

从数据库日志中删除所有保存的校验和

changelogSync

标记所有的更改已执行

changelogSyncSQL

生成标记更改已执行的sql并输出到标准输出

markNextChangeSetRan

将下一个变更标记为已执行

markNextChangeSetRanSQL

生成将下一个变更标记为已执行的sql并输出到标准输出

listLocks

列出liquibase数据库锁

releaseLocks

释放所有的liquibase数据库锁

dropAll

删除数据库表(慎用!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值