Flyway是一款開源的數(shù)據(jù)庫sql腳本版本管理工具。
它的原理是:在schema中生成一張version表,記錄此次更新的sql腳本版本號,保證版本號能和數(shù)據(jù)庫對應(yīng)起來。
在定義sql腳本名稱的時候需要使用如下版本規(guī)范:
1、前綴(可配置,默認值:V)
2、版本
3、分隔符(兩個下劃線)
4、描述(下劃線或空格分開)
5、后綴(可配置,默認情況下:SQL)
如:V1_Create_person_table.sql V2_Insert_persons.sql
其中Create_person_table和Insert_persons都是腳本功能的描述
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比迎澤網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式迎澤網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋迎澤地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
具體集成過程如下:
目錄結(jié)構(gòu)和maven的目錄結(jié)構(gòu)一致,如下:
可以看到和src同級目錄有一個flyway的配置文件和工程的pom文件。
配置文件flyway.properties內(nèi)容如下,主要配置的都是一些數(shù)據(jù)庫的連接信息.一目了然:
flyway.driver=oracle.jdbc.OracleDriver
flyway.url=jdbc:oracle:thin:@192.168.2.200:1521/orcl
flyway.user=qq
flyway.password=qq
flyway.schemas=FLYWAY
flyway_table=qq_version
flyway.placeholders.keyABC=valueXYZ
flyway.placeholders.otherplaceholder=value123
加flyway的plugin信息,如下:
切記在pom文件的依賴信息里一定要出現(xiàn)數(shù)據(jù)庫的驅(qū)動包:
其中l(wèi)ib目錄下放的是flyway的jar包flyway-commandline-4.0-sources.jar
切記:flyway的sql腳本存放目錄默認是resources/db/ migration。
可以看到在migration目錄下我有兩個腳本,腳本如下:
V1__Create_person_table.sql:
create table PERSON (
NAME varchar(80) not null
);
V2__Insert_persons.sql:
INSERT INTO PERSON (NAME) VALUES ('Peter Meyer');
INSERT INTO PERSON (NAME) VALUES ('Peter Bonnd');
INSERT INTO PERSON (NAME) VALUES ('Klara Korn');
配置完成之后,需要在jenkins上面配置工程了,這里需要注意的只是構(gòu)建參數(shù):
mvn flyway:init(初始化Flyway metadata)
mvn flyway:migrate(執(zhí)行Flyway升級操作)
mvn flyway:validate(校驗Flyway數(shù)據(jù)正確性)
如下,是我的構(gòu)建參數(shù):
-X -Dflyway.configFile=flyway.properties flyway:migrate -Dmaven.test.skip=true
參數(shù)介紹:-X:debug級別構(gòu)建,打印詳細的構(gòu)建過程
-Dflyway.configFile=指定對應(yīng)的flyway配置文件
-Dmaven.test.skip=true跳過測試用例
還記得配置文件里面有一個參數(shù):
flyway.schemas=qq
在這里用戶必須具備創(chuàng)建schema的權(quán)限,因此這里給用戶授予dba權(quán)限:
重新編譯執(zhí)行通過。
由于schema_version是記錄數(shù)據(jù)庫版本信息的,因此flyway對其做了保護策略,如果要查看這張表,則必須給表名加雙引號,如:select * from "schema_version"
這里說明下:
1.對于schema的構(gòu)建,在采用jenkins構(gòu)建的時候flyway先會去檢測schema存不存在,不存在創(chuàng)建,存在則跳過。因此建議大家在使用flyway構(gòu)建前,先創(chuàng)建好schema
2.在寫配置文件的時候由于oracle默認的用戶名名稱都是大寫,因此配置文件中的schema也請標注為大寫。
可以在數(shù)據(jù)庫里查看生成的schema_version信息:
這張表就記錄了數(shù)據(jù)庫的sql腳本版本信息。后續(xù)有更新也會從這張表里面獲取當前的數(shù)據(jù)庫版本信息。
標題名稱:flyway,maven,oracle集成記錄
URL標題:http://jinyejixie.com/article28/pgejcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、小程序開發(fā)、營銷型網(wǎng)站建設(shè)、微信公眾號、用戶體驗、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)