背景:
我們是一個不大的軟件開發團隊,但是客戶遍佈全球
關於數據庫的版本控制前段時間一直沒找到特別好的方式,通過思考和不斷實踐,最近總結了一個不錯的方法,特分享給大家
做好數據庫的版本控制目的:
同時保證:開發--》測試--》客戶基線控制--》數據安全性的需要
1號數據庫(開發):主要用於開發使用,所以能持續集成最新的數據庫schema(所有開發人員對數據庫的每日修改都將集成到該數據庫,儘早發現問題)
2號數據庫(客戶測試):主要用於,和客戶的數據庫同步,客戶升級過程
-
- 獲取客戶的數據庫Schema,放到2號數據庫,並記錄日期和時間,以及版本號
- 比對1號開發數據庫和2號客戶數據庫,生成升級腳本
- 用升級腳本升級2號客戶數據庫,然後進行測試,並修改數據庫名字爲新的版本號
- 測試成功,將升級腳本,打包進安裝包,對客戶數據庫進行升級
3號數據庫(基線):基線數據庫,只保存重大版本的release,比方1.0, 2.0等,小的bug fix 版本都不放基線庫,也就是基本不更新(本人認爲更新頻率越低,穩定性和出錯概率越小)。
因爲小的bug fix等,這些tracking可以交給TFS或者其它版本控制工具的checkin記錄。
仔細查看,可以發現,其實開發數據庫和基線數據庫在數量上有個1對1的關係