最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合liquibase及l(fā)iquibase生成初始化腳本的方式

 更新時(shí)間:2022年02月10日 11:58:56   作者:露天窗  
這篇文章主要介紹了SpringBoot整合liquibase的相關(guān)資料,文中給大家介紹了liquibase生成初始化腳本的兩種方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一. SpringBoot集成liquibase

項(xiàng)目集成liquibase作用

  1. 對(duì)數(shù)據(jù)庫(kù)表字段進(jìn)行版本控制
  2. 項(xiàng)目初始化部署時(shí)初始化數(shù)據(jù)庫(kù)表和數(shù)據(jù)

①.導(dǎo)入pom依賴

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

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

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

不同spring版本配置方式不一樣
具體看源碼LiquibaseProperties中配置

在這里插入圖片描述

③.新建master.xml文件用于中指定數(shù)據(jù)庫(kù)初始化腳本的位置

<?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>

④.將數(shù)據(jù)庫(kù)表初始腳本init_table.xml和數(shù)據(jù)初始腳本init_data.xml放到項(xiàng)目目錄下

在這里插入圖片描述

腳本可以通過手寫的方式或者通過liquibase自動(dòng)生成;

啟動(dòng)項(xiàng)目如果第一次運(yùn)行則會(huì)在數(shù)據(jù)庫(kù)中創(chuàng)建表和數(shù)據(jù)
后面如果腳本中有新增表或者字段啟動(dòng)項(xiàng)目的時(shí)候也會(huì)自動(dòng)創(chuàng)建生成

二. liquibase生成數(shù)據(jù)庫(kù)表和數(shù)據(jù)的初始化腳本

liquibase有兩種方式生成初始化腳本

方法一:在官網(wǎng)下載liquibase壓縮包,使用原生的命令行指令來(lái)生成

下載liquibase壓縮包,解壓,將mysql連接jar包復(fù)制一份到此目錄下

在這里插入圖片描述

進(jìn)入解壓目錄執(zhí)行如下執(zhí)行

根據(jù)數(shù)據(jù)庫(kù)生成表結(jié)構(gòu)文件

./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

根據(jù)數(shù)據(jù)庫(kù)生成初始數(shù)據(jù)文件

./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
  • 數(shù)據(jù)庫(kù)驅(qū)動(dòng)取決于數(shù)據(jù)庫(kù)

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

  • mysql連接

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

  • 自定義生成的初始化腳本文件名

–changeLogFile=./init-data.xml

  • 數(shù)據(jù)庫(kù)連接地址

–url=“jdbc:mysql://192.168.0.162:3306/hello_world”

  • 數(shù)據(jù)庫(kù)用戶名密碼

-username=root
–password=123456

  • 生成初始化表數(shù)據(jù)需要加上這個(gè)配置,生成表結(jié)構(gòu)則不加

-diffTypes=data

方法二:使用Maven插件

<plugin>
	<groupId>org.liquibase</groupId>
	<artifactId>liquibase-maven-plugin</artifactId>
	<version>3.4.2</version>
	<configuration>
		<changeLogFile>${basedir}/src/main/resources/liquibase/change_log/changelog.xml</changeLogFile>
		<!--changelog文件生成位置-->
		<outputChangeLogFile>${basedir}/src/main/resources/liquibase/change_log/changelog.xml</outputChangeLogFile>
		<!--數(shù)據(jù)庫(kù)連接-->
		<driver>com.mysql.jdbc.Driver</driver>
		<url>jdbc:mysql://192.168.0.30:3306/school</url>
		<username>qj</username>
		<password>123456</password>
		<!--輸出文件編碼-->
		<outputFileEncoding>UTF-8</outputFileEncoding>
		<!--執(zhí)行的時(shí)候是否顯示詳細(xì)的參數(shù)信息-->
		<verbose>true</verbose>
		<!--連接非本地?cái)?shù)據(jù)庫(kù)是否彈出提示框-->
		<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
		<!--生成changelog文件內(nèi)容-->
		<diffTypes>tables, views, columns, indexs,foreignkeys, primarykeys, uniqueconstraints, data</diffTypes>
	</configuration>
</plugin>

如果只是生成數(shù)據(jù)庫(kù)表腳本,則將上面的diffTypes注釋起來(lái)或者去掉里面的data
如果只是生成數(shù)據(jù)腳本,則只留下data
如果要把數(shù)據(jù)表腳本和數(shù)據(jù)腳本生成到一個(gè)文件則保留上面的difftypes所有內(nèi)容

安裝好maven插件后maven插件中可以看如下圖的指令,點(diǎn)擊即可生成腳本文件

在這里插入圖片描述

生成腳本如下

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
          
    <changeSet author="404997819 (generated)" id="1590732067909-4">
        <createTable tableName="t_student">
            <column autoIncrement="true" name="studentId" remarks="學(xué)生自增ID" type="INT">
                <constraints primaryKey="true"/>
            </column>
            <column name="classId" remarks="班級(jí)ID" type="INT"/>
            <column name="userCode" remarks="用戶唯一碼" type="VARCHAR(20)"/>
            <column name="studentName" remarks="學(xué)生姓名" type="VARCHAR(20)"/>
            <column name="studentImageUrl" remarks="學(xué)生頭像地址" type="VARCHAR(200)"/>
            <column name="studentCode" remarks="學(xué)生學(xué)號(hào)" type="VARCHAR(50)"/>
            <column name="IDCard" remarks="身份證號(hào)" type="VARCHAR(50)"/>
            <column name="status" remarks="學(xué)生狀態(tài) 1:在讀 0:畢業(yè) -1:轉(zhuǎn)校" type="VARCHAR(5)"/>
            <column name="flag" remarks="是否刪除 1:正常顯示,-1:表示刪除" type="VARCHAR(10)"/>
            <column name="createDate" remarks="創(chuàng)建時(shí)間" type="datetime"/>
        </createTable>
    </changeSet>
    
    <changeSet author="404997819 (generated)" id="1590732067909-6">
        <createTable tableName="t_teacherRelation">
            <column autoIncrement="true" name="teacherRelationId" remarks="主鍵自增ID" type="INT">
                <constraints primaryKey="true"/>
            </column>
            <column name="classId" remarks="班級(jí)ID" type="INT"/>
            <column name="teacherId" remarks="教師ID" type="INT"/>
            <column name="teacherType" remarks="教師類型 1:班主任" type="VARCHAR(10)"/>
            <column name="flag" remarks="是否刪除 1:正常顯示,-1:表示刪除" type="VARCHAR(10)"/>
            <column name="createDate" remarks="創(chuàng)建時(shí)間" type="datetime"/>
        </createTable>
    </changeSet>
   
    <changeSet author="404997819 (generated)" id="1590732067909-10">
        <createIndex indexName="Reft_userinfo88" tableName="t_api_logs">
            <column name="apiToken"/>
        </createIndex>
    </changeSet>
</databaseChangeLog>

參考文章如下
http://blog.jiunile.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7liquibase.html
https://blog.csdn.net/cover1231988/article/details/78124673?utm_source=blogxgwz5
https://www.cnblogs.com/tonyq/p/8039770.html
https://www.jianshu.com/p/07a45b6722fd

到此這篇關(guān)于SpringBoot整合liquibase的文章就介紹到這了,更多相關(guān)SpringBoot整合liquibase內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中的除法運(yùn)算和取模運(yùn)算解讀

    java中的除法運(yùn)算和取模運(yùn)算解讀

    這篇文章主要介紹了java中的除法運(yùn)算和取模運(yùn)算,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 舉例講解Java中synchronized關(guān)鍵字的用法

    舉例講解Java中synchronized關(guān)鍵字的用法

    這篇文章主要介紹了Java中synchronized關(guān)鍵字的用法,針對(duì)synchronized修飾方法的使用作出了簡(jiǎn)單講解和演示,需要的朋友可以參考下
    2016-04-04
  • java 抽象類和接口的區(qū)別詳細(xì)解析

    java 抽象類和接口的區(qū)別詳細(xì)解析

    abstractclass和interface是Java語(yǔ)言中對(duì)于抽象類定義進(jìn)行支持的兩種機(jī)制,正是由于這兩種機(jī)制的存在,才賦予了Java強(qiáng)大的面向?qū)ο竽芰?需要了解的朋友可以參考下
    2012-11-11
  • Spring-AOP @AspectJ進(jìn)階之如何綁定代理對(duì)象

    Spring-AOP @AspectJ進(jìn)階之如何綁定代理對(duì)象

    這篇文章主要介紹了Spring-AOP @AspectJ進(jìn)階之如何綁定代理對(duì)象的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java的靜態(tài)方法調(diào)用方式

    java的靜態(tài)方法調(diào)用方式

    這篇文章主要介紹了java的靜態(tài)方法調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MyBatis-Plus流式查詢的實(shí)現(xiàn)示例

    MyBatis-Plus流式查詢的實(shí)現(xiàn)示例

    MyBatis-Plus 從 3.5.4 版本開始支持流式查詢,通過ResultHandler接口實(shí)現(xiàn)結(jié)果集的流式查詢,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 用java的spring實(shí)現(xiàn)一個(gè)簡(jiǎn)單的IOC容器示例代碼

    用java的spring實(shí)現(xiàn)一個(gè)簡(jiǎn)單的IOC容器示例代碼

    本篇文章主要介紹了用java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的IOC容器示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03
  • 一文帶你深入了解Java的數(shù)據(jù)結(jié)構(gòu)

    一文帶你深入了解Java的數(shù)據(jù)結(jié)構(gòu)

    Java工具包提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)。這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)中常用的幾種接口和類,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • 解決RestTemplate加@Autowired注入不了的問題

    解決RestTemplate加@Autowired注入不了的問題

    這篇文章主要介紹了解決RestTemplate加@Autowired注入不了的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-08-08
  • java字節(jié)流知識(shí)點(diǎn)總結(jié)

    java字節(jié)流知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于java字節(jié)流的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。
    2019-07-07

最新評(píng)論

宁德市| 留坝县| 望奎县| 荔波县| 黄平县| 扎鲁特旗| 湖南省| 施秉县| 陆丰市| 伊金霍洛旗| 浠水县| 北辰区| 凯里市| 贺兰县| 临沂市| 贵南县| 娄烦县| 文成县| 平果县| 无极县| 读书| 宝清县| 昌乐县| 临桂县| 临武县| 蒲江县| 南安市| 绍兴县| 苏尼特左旗| 雅安市| 兖州市| 元朗区| 威信县| 文登市| 区。| 田阳县| 黄骅市| 宣武区| 玉溪市| 浠水县| 横山县|