為什麼說資料庫版本控制是必須的

2021-09-06 21:40:49 字數 1454 閱讀 6159

原文:

為什麼說資料庫版本控制是必須的

原文出處:黃釗吉csdn部落格:為什麼說資料庫版本控制是必要的

開發過程中的版本控制非常常見,但在資料庫的世界來說,版本控制就是二等甚至三等公民了。當多人同時開發乙個資料庫管理和應用系統時,採用合理的方法監控資料庫中表、儲存過程和檢視等物件的變動是非常重要的,每次更改資料庫,都需要做詳細的記錄,稍不留神就出問題。我任職過的幾家公司在開發流程中的版本控制做的非常到位,但資料庫方面卻是一片空白,在開發過程中,經常會涉及到表上增加列、修改列、修改儲存過程和檢視,發生變化後,之前的資料庫物件定義就丟失了,給開發帶來非常多的麻煩,下面說說我解決沒有資料庫版本控制機制所引起的麻煩的思路。

解決這個麻煩我們最開始的思路就是備份資料庫,每隔幾天備份一次資料庫,當需要找歷史資料庫物件時將備份庫還原到測試機上再把對應的儲存過程或者表定義找出來。這種方式使用過程中就發現很多問題,首先每次需要檢視歷史記錄的時候去還原備份非常麻煩,其次隨著開發的進行,很難記得清是誰在什麼時間改了什麼資料庫物件,必須把一段時間內的備份都還原了再進行查詢。這個過程不僅讓人很惱火,也非常浪費時間精力,如果備份間隔過長,期間變更的物件定義就無法找回了。

後來的解決思路就是每次修改資料庫物件的時候將資料庫物件的定義以.sql的方式存入svn,這種方式非常麻煩。很多時候開發人員偷懶忘記簽入svn了,則會引起很大問題。新加入團隊的人也很難看清版本修改的來龍去脈。此外,這種方式非常不直觀,如果希望看到乙個資料庫物件的歷史版本記錄,則還要去svn中查詢,顯示也非常不直觀

還有乙個問題是團隊中的開發dba非常不習慣使用svn。

這種方式是我在網上看到過的,是在資料庫中通過觸發器對於資料庫的變更操作進行記錄,作為開發出身的人來說,對這種方式就不是很喜歡。況且去歷史表中找版本修改記錄本來就是一件費時費力的事。

現在一些第三方公司已經開發了針對資料庫的版本控制工具,我們之前曾經嘗試過redgate的sqlsource control( control的原理是基於svn,使用起來不是很符合團隊的使用習慣,易用性不夠,在團隊推廣的培訓成本也比較高。

最近團隊在使用的另乙個工具是乙個很易用的中文版資料庫版本控制軟體,叫做sourcesafe for sql server( source safe for sql server的原理是將變更記錄存入版本庫,定期可以將資料庫定義的指令碼匯入svn,資料庫版本的歷史記錄可以像在svn中那樣檢視,團隊推廣的培訓成本也比較低。幫助我們解決了很多團隊中的問題。

資料庫版本化看似是個可有可無的過程,但做好了,可以減少開發和實施甚至是生產環境中的很多麻煩,我們的系統就是個活生生的例子。本文所闡述的方法是來自之前團隊的經驗。開發團隊的發展都會經歷從幼稚到成熟,借鑑成熟工具的經驗和方**,提前認識並解決問題可減少損失提公升生產力。

資料庫的版本控制是必須的

摘自 程式設計師開發利器 源 管理的十條建議 資料庫的版本控制是必須的 這是有很多人想做,但是覺得很困難而做不到的一點。這裡的問題是,很多應用沒有資料庫根本無法執行。所以如果你不把資料庫加入版本控制的話,你的應用是不完整的。大部分的版本控制系統只針對檔案系統工作,例如 html,css,配置檔案等等...

為什麼說POSTGRESQL資料庫比MySQL強?

postgresql在很多方面都比mysql強,如複雜sql的執行 儲存過程 觸發器 索引。同時postgresql是多程序的,而mysql是執行緒的,雖然併發不高時,mysql處理速度快,但當併發高的時候,對於現在多核的單台機器上,mysql的總體處理效能不如postgresql,原因是mysql...

資料庫版本控制

資料庫的版本控制與 版本控制的區別在於資料庫中的生產資料是現場創造的,當我們的表結構發生改變時,不能直接用drop table然後再create table,因為這樣會導致生產資料丟失。而 則完全由開發人員創造,可以用完全覆蓋的方式公升級。由於這點不同,致使資料庫在版本控制的過程中必然要採 用與 不...