巧用半自動化方法解決數(shù)據(jù)庫表結(jié)構(gòu)差異
導(dǎo)讀:許多人在工作中常常會遇到升級的事情,對于不同的用戶,有時(shí)所使用的數(shù)據(jù)庫的表結(jié)構(gòu)也會有一些不同,時(shí)間長了,往往就需要一份各版本數(shù)據(jù)庫表結(jié)構(gòu)的差異報(bào)告了。當(dāng)你需要一份這樣的報(bào)告時(shí),你會怎么做?一個(gè)個(gè)的比較每個(gè)庫的每個(gè)表,每個(gè)表的每個(gè)字段,每個(gè)字段的定義,索引……都過于繁瑣,本問將主要介紹一個(gè)半自動化的方法,詳細(xì)內(nèi)容請大家參考下文:
前提條件,你的機(jī)器里要有MS Visio。這個(gè)軟件里,有一個(gè)[數(shù)據(jù)庫——數(shù)據(jù)庫模型圖]的繪圖類型。我就是用它來實(shí)現(xiàn)比較數(shù)據(jù)庫表結(jié)構(gòu)之間的差異的。
***步:打開Visio,新建一個(gè)數(shù)據(jù)庫——數(shù)據(jù)庫模型圖的文件。繪圖文件打開后,選擇主菜單的“數(shù)據(jù)庫”-“反向工程”,這時(shí),會彈出“反向工程向?qū)?rdquo;,從現(xiàn)有數(shù)據(jù)庫中提取數(shù)據(jù)庫架構(gòu)。配置好你的數(shù)據(jù)源,就是要比較的數(shù)據(jù)庫(一般是舊版數(shù)據(jù)庫)。按提示,會要你輸入用戶名、密碼的,然后就會讓你選擇要進(jìn)行反向工程的對象類型。自己選擇吧,你關(guān)心什么樣的數(shù)據(jù)庫結(jié)構(gòu),就選什么好了。好了,下一步,選擇要進(jìn)行反向工程的表和/或視圖,全選好啦。再下一步,這里,問你是否要將形狀添加到當(dāng)前頁,我建議你還是不要添加了,否,以后再添加形狀。再下一步,檢查一下,沒問題就按完成吧。至此,源數(shù)據(jù)庫的結(jié)構(gòu)已經(jīng)創(chuàng)建好了。保存一下文件吧。
第二步:在源數(shù)據(jù)庫模型圖文件中,選擇主菜單的“數(shù)據(jù)庫”—“刷新模型”。這時(shí),會彈出“刷新模型向?qū)?rdquo;,和原來的反向工程向?qū)Щ疽粯?,在這里,請選擇你要比較的數(shù)據(jù)庫(一般是新版數(shù)據(jù)庫),按提示,會要你輸入用戶名、密碼的,然后……,就開始比較當(dāng)前數(shù)據(jù)庫和存儲在模型中的數(shù)據(jù)庫映像之間的差異了。在這里,會有一個(gè)報(bào)告給你,這個(gè)報(bào)告,你即可信,也不要全信,為什么前面說是半自動化的方法呢,原因就在這,有差異,他會全部列出來,沒有差異的地方,他也會列出來。OK,自己辛苦下,按這個(gè)報(bào)告的提示,咱自己一一驗(yàn)證,出個(gè)權(quán)威性的數(shù)據(jù)庫結(jié)構(gòu)差異報(bào)告吧。
至此,差異報(bào)告出來了。
大家可以按此方法,兩兩比較,很快,你的總報(bào)告就完成了。不過,這個(gè)方法只適合比較表結(jié)構(gòu),如果有些固化信息已經(jīng)寫在表內(nèi)容里,就不適合這個(gè)方法了。所以大家在采用上文中提到的兩種方法時(shí),一定要綜合考慮各種條件。
【編輯推薦】