99网
您的当前位置:首页SpringBoot整合liquibase及liquibase生成初始化脚本的方式

SpringBoot整合liquibase及liquibase生成初始化脚本的方式

来源:99网
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⽂件⽤于中指定数据库初始化脚本的位置

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\">

④.将数据库表初始脚本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的⽂章就介绍到这了,更多相关SpringBoot整合liquibase内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容