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内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!