<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
專案整合liquibase作用
①.匯入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檔案用於中指定資料庫初始化指令碼的位置
<?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>
④.將資料庫表初始指令碼init_table.xml和資料初始指令碼init_data.xml放到專案目錄下
指令碼可以通過手寫的方式或者通過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
–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外掛
<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> <!--資料庫連線--> <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> <!--執行的時候是否顯示詳細的引數資訊--> <verbose>true</verbose> <!--連線非本地資料庫是否彈出提示框--> <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase> <!--生成changelog檔案內容--> <diffTypes>tables, views, columns, indexs,foreignkeys, primarykeys, uniqueconstraints, data</diffTypes> </configuration> </plugin>
如果只是生成資料庫表指令碼,則將上面的diffTypes註釋起來或者去掉裡面的data
如果只是生成資料指令碼,則只留下data
如果要把資料表指令碼和資料指令碼生成到一個檔案則保留上面的difftypes所有內容
安裝好maven外掛後maven外掛中可以看如下圖的指令,點選即可生成指令碼檔案
生成指令碼如下
<?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="學生自增ID" type="INT"> <constraints primaryKey="true"/> </column> <column name="classId" remarks="班級ID" type="INT"/> <column name="userCode" remarks="使用者唯一碼" type="VARCHAR(20)"/> <column name="studentName" remarks="學生姓名" type="VARCHAR(20)"/> <column name="studentImageUrl" remarks="學生頭像地址" type="VARCHAR(200)"/> <column name="studentCode" remarks="學生學號" type="VARCHAR(50)"/> <column name="IDCard" remarks="身份證號" type="VARCHAR(50)"/> <column name="status" remarks="學生狀態 1:在讀 0:畢業 -1:轉校" type="VARCHAR(5)"/> <column name="flag" remarks="是否刪除 1:正常顯示,-1:表示刪除" type="VARCHAR(10)"/> <column name="createDate" remarks="建立時間" 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="班級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="建立時間" 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
到此這篇關於SpringBoot整合liquibase的文章就介紹到這了,更多相關SpringBoot整合liquibase內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45