91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flyway,maven,oracle集成記錄

發布時間:2020-08-10 02:30:22 來源:ITPUB博客 閱讀:227 作者:1006356403 欄目:建站服務器

Flyway功能以及sql命名規范介紹

Flyway是一款開源的數據庫sql腳本版本管理工具。
它的原理是:在schema中生成一張version表,記錄此次更新的sql腳本版本號,保證版本號能和數據庫對應起來。
在定義sql腳本名稱的時候需要使用如下版本規范:
1
、前綴(可配置,默認值:V
2
、版本
3
、分隔符(兩個下劃線)
4
、描述(下劃線或空格分開)
5
、后綴(可配置,默認情況下:SQL
如:V1_Create_person_table.sql V2_Insert_persons.sql
其中Create_person_tableInsert_persons都是腳本功能的描述

Flyway目錄結構以及配置介紹

具體集成過程如下:
目錄結構和maven的目錄結構一致,如下:
flyway,maven,oracle集成記錄
flyway,maven,oracle集成記錄
可以看到和src同級目錄有一個flyway的配置文件和工程的pom文件。
配置文件flyway.properties內容如下,主要配置的都是一些數據庫的連接信息.一目了然:

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

flywayplugin信息,如下:
flyway,maven,oracle集成記錄
切記在pom文件的依賴信息里一定要出現數據庫的驅動包:
flyway,maven,oracle集成記錄
其中lib目錄下放的是flywayjarflyway-commandline-4.0-sources.jar
切記:flywaysql腳本存放目錄默認是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工程配置介紹

配置完成之后,需要在jenkins上面配置工程了,這里需要注意的只是構建參數:
mvn flyway:init
(初始化Flyway metadata
mvn flyway:migrate
(執行Flyway 升級操作)
mvn flyway:validate
(校驗Flyway 數據正確性)
如下,是我的構建參數:
-X -Dflyway.configFile=flyway.properties flyway:migrate -Dmaven.test.skip=true
參數介紹:-X debug級別構建,打印詳細的構建過程
-Dflyway.configFile=
指定對應的flyway配置文件
-Dmaven.test.skip=true
跳過測試用例

常見錯誤分析

1.構建失敗,create schema沒權限

flyway,maven,oracle集成記錄
還記得配置文件里面有一個參數:
flyway.schemas=qq
在這里用戶必須具備創建schema的權限,因此這里給用戶授予dba權限:
flyway,maven,oracle集成記錄
重新編譯執行通過。

2.構建之后找不到生成的表:

flyway,maven,oracle集成記錄
由于schema_version是記錄數據庫版本信息的,因此flyway對其做了保護策略,如果要查看這張表,則必須給表名加雙引號,如:select * from "schema_version"
flyway,maven,oracle集成記錄
flyway,maven,oracle集成記錄

這里說明下:

1.對于schema的構建,在采用jenkins構建的時候flyway先會去檢測schema存不存在,不存在創建,存在則跳過。因此建議大家在使用flyway構建前,先創建好schema

flyway,maven,oracle集成記錄

2.在寫配置文件的時候由于oracle默認的用戶名名稱都是大寫,因此配置文件中的schema也請標注為大寫。

構建結果查看

flyway,maven,oracle集成記錄
flyway,maven,oracle集成記錄
flyway,maven,oracle集成記錄
可以在數據庫里查看生成的schema_version信息:
flyway,maven,oracle集成記錄
這張表就記錄了數據庫的sql腳本版本信息。后續有更新也會從這張表里面獲取當前的數據庫版本信息。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太仆寺旗| 湘潭市| 志丹县| 开原市| 汝南县| 津市市| 阜康市| 牟定县| 灵璧县| 滦南县| 九龙坡区| 南昌县| 鄂托克前旗| 湟中县| 长葛市| 乌拉特后旗| 石阡县| 安国市| 德安县| 巴塘县| 周至县| 莫力| 鄂伦春自治旗| 武平县| 泸溪县| 永兴县| 自贡市| 营山县| 恩施市| 龙口市| 邹城市| 花莲市| 尼勒克县| 靖远县| 固原市| 会东县| 铁岭县| 贵阳市| 涡阳县| 河间市| 菏泽市|