九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用liquibase-maven-plugin實(shí)現(xiàn)持續(xù)數(shù)據(jù)庫集成

數(shù)據(jù)庫版本管理、持續(xù)集成一直都是大家比較關(guān)心的問題,網(wǎng)上也有很多相關(guān)的文章介紹。一直都很羨慕ruby on railsdatabase migration,非常強(qiáng)大,好在java陣營也有類似的工具可以幫助大家管理數(shù)據(jù)庫版本,實(shí)現(xiàn)數(shù)據(jù)庫遷移。本文將針對liquibase-maven-plugin這個maven插件做詳細(xì)的介紹,希望能對大家有所幫助。

一、配置properties-maven-plugin,使maven加載外部屬性配置文件

liquibase需要配置數(shù)據(jù)庫的連接屬性及驅(qū)動等參數(shù),如果這些參數(shù)直接配置在pom文件中,會增加配置管理人員的工作量,因此希望能夠統(tǒng)一讀取web應(yīng)用中已經(jīng)配置好的properties文件中的配置屬性,可以使用properties-maven-plugin插件導(dǎo)入配置文件,配置示例如下:

geoq.properties配置示例如下:

那么就可以在pom中使用${PropertyNmae}引用配置屬性,如

二、配置liquibase-maven-plugin

配置示例如下:

1、需要通過dependency引入依賴jar包liquibase-core,版本號與插件版本號一致

2、通過phase參數(shù)指定何時運(yùn)行,一般為process-resources

3、changeLogFile參數(shù)指定liquibase數(shù)據(jù)庫變更日志文件

4、driverurl、usernamepassword配置數(shù)據(jù)庫連接參數(shù)

 三、根據(jù)數(shù)據(jù)庫生成數(shù)據(jù)庫變更日志文件

針對已有的數(shù)據(jù)庫,如何產(chǎn)生對應(yīng)的數(shù)據(jù)庫變更日志文件,可以使用generateChangeLog指令,使用該指令需要下載liquibase的執(zhí)行程序,命令示例如下:

generateChangeLog默認(rèn)只會創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)的變更日志文件,如果希望創(chuàng)建插入數(shù)據(jù)的變更日志文件,可以使用參數(shù)diffTypes,該參數(shù)包括如下可選項(xiàng):

比較兩個數(shù)據(jù)庫:

四、對現(xiàn)有數(shù)據(jù)庫進(jìn)行重構(gòu)

數(shù)據(jù)庫變更日志文件可以對數(shù)據(jù)庫的變更進(jìn)行版本管理,并且可以擺脫對特定數(shù)據(jù)庫的依賴,因此需要了解數(shù)據(jù)庫變更日志文件的相關(guān)語法,下面分別介紹如何通過數(shù)據(jù)庫變更日志配置數(shù)據(jù)庫重構(gòu)。

1、編輯列:

添加列

添加自增列:

刪除列:

修改已存在的列為自增列

修改postgresql自增列當(dāng)前索引值:liquibase不支持該操作,可以使用sql標(biāo)簽實(shí)現(xiàn)

2、創(chuàng)建表:

3、操作數(shù)據(jù):

應(yīng)該編寫用于操作數(shù)據(jù)的 SQL 腳本,因?yàn)槭褂?LiquiBase XML 變更集限制很多。有時候使用 SQL 腳本向數(shù)據(jù)庫應(yīng)用大量的變更會簡單一些。LiquiBase 也可以支持這些情景。

如下例為從 LiquiBase 變更集運(yùn)行一個定制 SQL 文件

編寫changeset時,如果字段的內(nèi)容為html標(biāo)簽,可以使用<![CDATA[html tag]]符號導(dǎo)入帶有html標(biāo)簽的文本。 

4、操作序列:

創(chuàng)建序列

修改序列

 五、liquibase-maven-plugin基本命令

 六、數(shù)據(jù)庫版本控制

1、添加版本標(biāo)簽:

a、使用命令行:

b、使用配置文件:

2、可以使用如下命令回滾到某個版本:

對應(yīng)的maven配置為:

rollback操作可選參數(shù)包括:

changeLogFile

String

設(shè)置Liquibase變更集文件

clearCheckSums

boolean

標(biāo)識是否強(qiáng)制清除數(shù)據(jù)庫表校驗(yàn).

默認(rèn)值為:false.

contexts

String

配置Liquibase執(zhí)行的上下文,多個上下文可以使用逗號分隔

databaseClass

String

數(shù)據(jù)庫對象的類

defaultSchemaName

String

數(shù)據(jù)庫連接使用的默認(rèn)數(shù)據(jù)庫結(jié)構(gòu)名稱

driver

String

數(shù)據(jù)庫連接的驅(qū)動名稱

emptyPassword

boolean

已過期。是否使用空字符串或null作為數(shù)據(jù)庫連接密碼

默認(rèn)值為:false.

expressionVariables

Map

傳遞給插件的數(shù)組變量

expressionVars

Properties

傳遞給插件的數(shù)組變量

includeArtifact

boolean

是否允許為獲取Liquibase屬性或數(shù)據(jù)庫變更日志時包含maven項(xiàng)目組件

默認(rèn)值為:true.

includeTestOutputDirectory

boolean

是否允許為獲取Liquibase屬性或數(shù)據(jù)庫變更日志時包含測試輸出目錄

默認(rèn)值為:true.

logging

String

控制插件輸出的日志級別。 可選值包括:"all", "finest", "finer", "fine", "info", "warning", "severe" or "off",注意該值是區(qū)分大小寫的。

默認(rèn)值為:INFO.

password

String

數(shù)據(jù)庫連接密碼

promptOnNonLocalDatabase

boolean

是否允許控制用戶執(zhí)行遠(yuǎn)程數(shù)據(jù)庫
默認(rèn)值為:true.

propertyFile

String

Liquibase屬性文件位置

propertyFileWillOverride

boolean

標(biāo)志是否允許使用Liquibase屬性文件覆蓋插件的配置

默認(rèn)值為:false.

rollbackCount

int

回滾的變更集個數(shù)

默認(rèn)值為:-1.

rollbackDate

String

設(shè)置回滾的日期。日期格式要符合插件執(zhí)行theDateFormat.getDateInstance()操作設(shè)置的日期格式

rollbackTag

String

要回滾到那個tag

server

String

在settings.xml中的服務(wù)器id進(jìn)行身份驗(yàn)證時使用

skip

boolean

設(shè)置為“true”跳過運(yùn)行l(wèi)iquibase,該參數(shù)不推薦使用

systemProperties

Properties

傳遞到數(shù)據(jù)庫的系統(tǒng)屬性

url

String

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

username

String

用戶名稱

verbose

boolean

控制調(diào)用插件的輸出的詳細(xì)程度。

默認(rèn)值為:false.


也可以指定回滾的步數(shù)(
changeset個數(shù)):

或者生成回滾的sql腳本:

3、可以根據(jù)不同的版本分別創(chuàng)建相關(guān)changelog文件,使用include標(biāo)簽分別引入,如主干changelog文件為master-changelog.xml,定義如下:

七、創(chuàng)建特殊的類型的字段

changelog文件中,如希望創(chuàng)建postgresql支持的enum,可以使用的方法如下:

1、使用sql腳本直接創(chuàng)建

2、使用約束

3、獲取系統(tǒng)當(dāng)前時間

首先定義不同數(shù)據(jù)庫獲取時間的屬性標(biāo)簽

changesets中引用該屬性

完整示例如下:

八、支持多數(shù)據(jù)庫

可以在pom文件使用多個execution標(biāo)簽支持多數(shù)據(jù)庫,但是需要注意每個execution一定要定義id標(biāo)簽

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Maven部署構(gòu)件至遠(yuǎn)程倉庫
maven集成tomcat進(jìn)行web應(yīng)用測試
maven自動部署war包到tomcat
Eclipse Maven tomcat7集成配置
Nexus搭建Maven私服(五) Maven遠(yuǎn)程部署web工程
提供JDBC連接
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服