千家信息网

SpringBoot如何整合liquibase及liquibase生成初始化脚本

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章主要介绍SpringBoot如何整合liquibase及liquibase生成初始化脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. SpringBoot集成li
千家信息网最后更新 2025年01月26日SpringBoot如何整合liquibase及liquibase生成初始化脚本

这篇文章主要介绍SpringBoot如何整合liquibase及liquibase生成初始化脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一. SpringBoot集成liquibase

项目集成liquibase作用

  1. 对数据库表字段进行版本控制

  2. 项目初始化部署时初始化数据库表和数据

①.导入pom依赖

    org.liquibase    liquibase-core

②.配置application.yml文件,指定master.xml

spring:  liquibase:    change-log: classpath:liquibase/master.xml #指定master.xml文件的位置

不同spring版本配置方式不一样
具体看源码LiquibaseProperties中配置

③.新建master.xml文件用于中指定数据库初始化脚本的位置

        

④.将数据库表初始脚本init_table.xml和数据初始脚本init_data.xml放到项目目录下

脚本可以通过手写的方式或者通过liquibase自动生成;

启动项目如果第一次运行则会在数据库中创建表和数据
后面如果脚本中有新增表或者字段启动项目的时候也会自动创建生成

二. liquibase生成数据库表和数据的初始化脚本

liquibase有两种方式生成初始化脚本

方法一:在官网下载liquibase压缩包,使用原生的命令行指令来生成

下载liquibase压缩包,解压,将mysql连接jar包复制一份到此目录下

进入解压目录执行如下执行

根据数据库生成表结构文件

./liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=./init-data.xml --url="jdbc:mysql://192.168.0.162:3306/hello_world" --username=root --password=123456 --diffTypes=data generateChangeLog

根据数据库生成初始数据文件

./liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=./init-table.xml --url="jdbc:mysql://192.168.0.162:3306/hello_world" --username=root --password=123456 generateChangeLog
  • 数据库驱动取决于数据库

–driver=com.mysql.cj.jdbc.Driver

  • mysql连接

–classpath=mysql-connector-java-8.0.17.jar

  • 自定义生成的初始化脚本文件名

–changeLogFile=./init-data.xml

  • 数据库连接地址

–url="jdbc:mysql://192.168.0.162:3306/hello_world"

  • 数据库用户名密码

-username=root
–password=123456

  • 生成初始化表数据需要加上这个配置,生成表结构则不加

-diffTypes=data

方法二:使用Maven插件

        org.liquibase        liquibase-maven-plugin        3.4.2                        ${basedir}/src/main/resources/liquibase/change_log/changelog.xml                                ${basedir}/src/main/resources/liquibase/change_log/changelog.xml                                com.mysql.jdbc.Driver                jdbc:mysql://192.168.0.30:3306/school                qj                123456                                UTF-8                                true                                false                                tables, views, columns, indexs,foreignkeys, primarykeys, uniqueconstraints, data        

如果只是生成数据库表脚本,则将上面的diffTypes注释起来或者去掉里面的data
如果只是生成数据脚本,则只留下data
如果要把数据表脚本和数据脚本生成到一个文件则保留上面的difftypes所有内容

安装好maven插件后maven插件中可以看如下图的指令,点击即可生成脚本文件

生成脚本如下

                                                                                                                                                                                                                                                                                                                                                             

以上是"SpringBoot如何整合liquibase及liquibase生成初始化脚本"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0