翻譯|使用教程|編輯:莫成敏|2019-08-29 09:38:14.123|閱讀 302 次
概述:本教程介紹了這些技術(shù)的簡單擴(kuò)展,其中包含SQL Compare Snapshots,本文是該教程的后半部分??煺帐且粋€(gè)緊湊的二進(jìn)制文件,它捕獲源數(shù)據(jù)庫結(jié)構(gòu)的時(shí)間點(diǎn)副本。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SQL Compare是一款比較和同步SQL Server數(shù)據(jù)庫結(jié)構(gòu)的工具?,F(xiàn)有超過150,000的數(shù)據(jù)庫管理員、開發(fā)人員和測試人員在使用它。當(dāng)測試本地?cái)?shù)據(jù)庫,暫存或激活遠(yuǎn)程服務(wù)器的數(shù)據(jù)庫時(shí),SQL Compare將分配數(shù)據(jù)庫的過程自動(dòng)化。
本文介紹了這些技術(shù)的簡單擴(kuò)展,其中包含SQL Compare Snapshots??煺帐且粋€(gè)緊湊的二進(jìn)制文件,它捕獲源數(shù)據(jù)庫結(jié)構(gòu)的時(shí)間點(diǎn)副本??煺詹话魏伪頂?shù)據(jù)。它有點(diǎn)像VCS中的標(biāo)記或分支,但是快照無法修改,因此表示數(shù)據(jù)庫結(jié)構(gòu)的完全穩(wěn)定視圖,因?yàn)樗趧?chuàng)建時(shí)存在。內(nèi)容緊接上文~
生成回滾腳本
如果源是快照,并且目標(biāo)是數(shù)據(jù)庫或底層腳本目錄的較新版本,則部署腳本將修改目標(biāo),以使其結(jié)構(gòu)狀態(tài)與快照的結(jié)構(gòu)狀態(tài)匹配。實(shí)際上,這意味著它將回滾所有更改,還原任何對象修改,刪除隨后添加的任何對象,以及重新創(chuàng)建任何已刪除的對象。
假設(shè)我已經(jīng)從scripts文件夾部署了一個(gè)新的CustomersPOC數(shù)據(jù)庫到我的開發(fā)SQL Server 2017實(shí)例中,然后對我的開發(fā)副本(刪除表)進(jìn)行了一些數(shù)據(jù)庫更改,現(xiàn)在運(yùn)行一個(gè)與原始快照的比較作為源。
在將任何更改部署到目標(biāo)之前,我們可以選擇在部署之前備份目標(biāo),SQL Compare將創(chuàng)建完整數(shù)據(jù)庫備份,該備份將備份架構(gòu)和所有數(shù)據(jù),或者創(chuàng)建目標(biāo)的新SQL Compare快照,這將是一個(gè)僅模式的副本,節(jié)省時(shí)間和磁盤空間。如果我想在以前的POC上重新運(yùn)行某些測試但不想丟失我后續(xù)的工作,這很有用。
最后,我們生成部署腳本,在這種情況下,將在我的目標(biāo)CustomerPOC數(shù)據(jù)庫中重新創(chuàng)建我之前刪除的Contacts表。
SQL Compare將首先捕獲目標(biāo)(我的CustomersPOC開發(fā)數(shù)據(jù)庫)的新快照,然后運(yùn)行部署腳本進(jìn)行修改CustomersPOC,與原始Customers快照同步。
使用快照作為目標(biāo)
當(dāng)我們希望在開發(fā)項(xiàng)目開始時(shí)從當(dāng)前源創(chuàng)建新快照時(shí),我們已經(jīng)有一種方法將快照用作目標(biāo),或者保存源數(shù)據(jù)庫的狀態(tài)以供以后使用。
但是,我們也可以將現(xiàn)有快照用作目標(biāo),并將其與數(shù)據(jù)庫、備份、腳本文件夾或其他快照進(jìn)行比較。請記住,我們無法修改現(xiàn)有快照,因此生成的部署腳本的目標(biāo)實(shí)際上是快照的源數(shù)據(jù)庫。部署腳本將同步目標(biāo),以使其在結(jié)構(gòu)上與源數(shù)據(jù)庫相同。
當(dāng)它接近將開發(fā)更改部署到預(yù)生產(chǎn)環(huán)境或生產(chǎn)時(shí),這非常有用。例如,團(tuán)隊(duì)可以將開發(fā)中的最新數(shù)據(jù)庫版本與生產(chǎn)數(shù)據(jù)庫的快照進(jìn)行比較,并為DBA提供部署腳本,以供詳細(xì)查看。
將快照用作源和目標(biāo)
有時(shí)團(tuán)隊(duì)會(huì)想要比較兩個(gè)快照。例如,如果無法直接將源開發(fā)數(shù)據(jù)庫與不同環(huán)境中的最新數(shù)據(jù)庫版本進(jìn)行比較,則可能會(huì)發(fā)生這種情況,因?yàn)樗鼈兾挥诓煌木W(wǎng)段上?;蛘?,開發(fā)團(tuán)隊(duì)可能有幾個(gè)POC快照,并希望了解它們之間的區(qū)別,以便它們可以將更改合并到一個(gè)數(shù)據(jù)庫中。
將快照設(shè)置為源和目標(biāo)時(shí),SQL Compare將生成部署腳本以修改目標(biāo)快照的數(shù)據(jù)庫,以便在結(jié)構(gòu)上匹配源快照。因此,例如,如果開發(fā)團(tuán)隊(duì)為DBA提供了開發(fā)數(shù)據(jù)庫最終版本的快照,則DBA可以將其與生產(chǎn)數(shù)據(jù)庫的最新快照進(jìn)行比較,并檢查生成的部署腳本。
結(jié)論
快照提供了一種在開發(fā)工作期間跟蹤更改的簡便方法,無論它們是迭代之間的小變化,還是發(fā)布之間的重大更改??煺湛捎糜谠诎l(fā)布期間快速生成回滾腳本,即使在出于安全原因而被基礎(chǔ)結(jié)構(gòu)設(shè)計(jì)隔離的環(huán)境中也是如此。
半島外圍網(wǎng)上直營相關(guān)的文章:
SQL Compare快照:輕量級數(shù)據(jù)庫版本控制和回滾機(jī)制(上)
SQL Compare教程:工作示例——比較和部署兩個(gè)數(shù)據(jù)庫(上)
SQL Compare教程:工作示例——比較和部署兩個(gè)數(shù)據(jù)庫(下)
想要購買SQL Compare正版授權(quán),或了解更多產(chǎn)品信息請點(diǎn)擊
掃描關(guān)注慧聚IT微信公眾號,及時(shí)獲取最新動(dòng)態(tài)及最新資訊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn