翻譯|使用教程|編輯:楊鵬連|2020-07-13 09:24:59.940|閱讀 251 次
概述:本文介紹了所有這些任務,并演示了使用SQL Compare可以實現的功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SQL Compare是一款比較和同步SQL Server數據庫結構的工具。現有超過150,000的數據庫管理員、開發人員和測試人員在使用它。當測試本地數據庫,暫存或激活遠程服務器的數據庫時,SQL Compare將分配數據庫的過程自動化。
第二版
我重新看一下Pubs,并決定需要更激進的發型來更新它。基本上,我想在適當的情況下VARCHAR將NVARCHAR欄目全部更改為欄目,以使名稱正確的人或書正確呈現!
在開發副本上,我使用完整的遷移腳本有條不紊地處理每個表,一直對其進行測試,并將每個對象獨立保存到源文件中……。好吧,上次我這樣做的時候,我穿著喇叭褲。我實際上所做的是使用SSMS中的“ 任務” >“ 生成腳本”從當前版本(2.1.6)生成構建腳本,并對其進行編輯以更新和擴展數據類型。如果使用腳本,則可以快速進行很多更改,并確保捕獲所有參考和影響。使用腳本時,觸發器和規則之類的對象無法隱藏。
顯然,我要更改的這些數據類型必須在表之間保持一致。如果您可能會犯錯,則值得添加代碼以刪除該對象(如果存在)。在SSMS中,您可以通過單擊“高級”鍵來微調腳本選項來執行此操作。
我正在進行廣泛的修訂,這超出了對象級工作的范圍。這類工作包括使用ER圖表工具或任何其他使我更具生產力的設計工具。
或者,我可以編寫一個遷移腳本來對每個表進行所有更改,但是在此階段根本不需要這樣做,因為沒有要保留的數據。為什么在SQL Compare僅處理所有這些工作時才編寫腳本,然后再變得必要?我們這里需要的只是一個構建腳本,這是SSMS做得很好的事情。您可以使用僅包含所需對象(本例中的所有對象)的構建腳本。
完成所有必要的編輯后,您可以使用新的構建腳本從頭開始構建數據庫的新開發版本(2.1.7),然后從當前版本導入數據以對其進行測試(請參見BCP方法或Kill / Fill)。當我對所有工作都感到滿意時,我將更新構建腳本以反映所有錯誤修復,并將其保存到腳本目錄,該目錄是該項目目錄的GitHub子目錄。
現在,我將Dev版本標記為2.1.7,然后將我們新建的dev數據庫與包含2.1.6的源代碼目錄進行比較,以更新對象腳本并保存遷移腳本(migration_2-1-6_to_2-1-7.sql), 像之前一樣。
現在,我們編輯遷移腳本以放入版本號陷阱,這一次是為了確保目標數據庫的版本為2.1.6。由于填充數據沒有問題,因此我們不需要添加任何遷移代碼。我們在當前版本上對其進行測試,然后再次驗證當前版本為2.1.7,但是數據沒有變化。
我們將2.1.6到21.7的遷移腳本以及21.7的構建腳本保存到項目中的Script目錄中。我們更新version.json文件,以確保所有內容均同步。
{ "$schema": "http://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", "version": "2.1.7" }
最后,我們已經準備好將所有更改推送到GitHub,當然,它神奇地意識到某些對象級腳本已更改,并就需要提交給本地存儲庫的內容提供建議。
相關產品推薦:
SQL Prompt:SQL語法提示工具
SQL Toolbelt:Red Gate產品套包
SQL Monitor:SQL Server監控工具
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: