四、解決進行資料庫版控會遇到的問題
-> Day 10 : 多個系統使用的同一個資料庫時要如何做版本變更
Day 11 : 不共享資料庫會造成的問題
Day 12: 使用 API First 的概念解決共享問題
Day 13 : 資料庫如何退回之前的版本
Day 14 : 如何處理資料表中被刪除或更名的欄位
Day 15 : 資料表降級時如何處理資料庫中被刪除的欄位
我們在前面幾個篇章有介紹了資料庫版本控制的好處與方法,在現在開始的這個章節開始,我們會以實務上會遇到的問題來提出並且給出一個可行的解決方案
今天帶來的問題是 [多個系統使用的同一個資料庫時要如何做版本變更] ,在實際狀況下很常遇見多個系統共用了同一個資料庫,如 人資系統 與 採購系統,採購系統透過人資系統內的 人員資料表 與 權限表的欄位,來給予相對應的審核功能,但這時若 人資系統 對 人員資料表 有所改動,很有可能會影響到 採購系統 的功能,而這件事是難以被檢查的,若僅靠文件或是人員教育訓練,很可能會導致資料表難以更改,更別提導入版本控制了
而這樣的解決方式我認為會有兩種
僅單一系統存取資料庫
系統設計上僅讓資料庫給單一系統使用,別的系統要使用時透過 API 的方式交換檔案,我認為這是最好的方式,在系統架構層面避免了難以被追蹤到的資料庫使用
為每一套系統有用到的資料表盤點並都納入版控,更新時檢察全系統是否有用到該資料表
這也是有看過的方式,因為當初系統已經這樣設計而難以花時間抽離成 API,因此透過盤點與將各系統使用的資料表列出來,比如當異動到 user 表時,篩選出 人資系統、採購系統、物流系統,再通知各系統的負責人協助修改與檢查
這樣的方法較為繁瑣且人工介入程度高,但也不失一個過渡期的做法
這是 解決進行資料庫版控會遇到的問題 的第一天,明日將會聊聊如果不共享資料庫會造成什麼問題