基於Git的數據庫sql文件的管理——完美解決團隊sql操作協同問題


基於Git的數據庫sql文件的管理——完美解決團隊sql操作協同問題

1.產生背景

公司開發項目過程中,后台會分為很多種服務,比如web服務,采集服務,都需要去操作數據庫,有的時候甚至前端也會去操作數據庫,修改字段,增加字段,刪除字段,修改初始化數據等。怎么在各方之間進行同步?本文介紹了一種基於Git(騰訊雲(原Coding))的數據庫sql文件管理方式。

2.之前沒用Git管理數據庫出現的問題

2.1 用同一個庫調試帶來的問題

  • 前端A,web服務端B,采集端C共用一個數據庫調試。前端A調試時,修改了數據庫的某些數據,導致服務端B跟采集端C出現異常,因為A在調試問題沒有及時通知到大家。浪費了B跟C的調試時間。
  • 前端A,web服務端B,采集端C共用一個數據庫調試。采集端C增加了字段,調試過程中,沒及時通知到大家,導致服務端B取該表數據不成功,前端顯示異常,浪費了A跟B的時間

2.2 數據庫sql版本不統一帶來的問題

采集端C由於1個月沒更新,但是數據庫版本已經發布了多個,采集端編碼好,統一發布之后,采集端不能運行成功,因為數據庫在服務端B增加修改了字段,而采集端沒有同步造成。

3.解決方案

3.1 Sql文件的創建

怎么把各方的數據庫版本同步,根據代碼管理規范,我想到了Git,用Git來管理Sql文件。Sql分成兩份文件,一份是IBMS_Structure.sql,數據庫結構文件;另一份是IBMS_InitData.sql初始化數據文件如下

其他定制項目可以用同一個結構sql,但是不同的初始化數據文件,如南通項目IBMS_InitDataNT.sql;銀川項目用IBMS_InitDataYC.sql

3.2 Navicat將兩份文件導入Mysql

3.2.1 表結構文件

原則:所有人都需要自己建立獨立的數據庫來調試

IBMS_Structure.sql

導入步驟

打開數據庫管理工具navicat.exe,

3.2.1.1 找到ipbms_sync表

3.2.1.2 右擊表名,選擇運行SQL文件

3.2.1.3 選擇表結構SQL文件

3.2.1.4 運行表結構SQL文件

3.2.1.5 完成后錯誤為0

3.2.1.6 右擊表,選擇刷新后可看到表

3.2.2 表初始化數據

IBMS_InitData.sql

導入步驟

同上。

3.3 將上述兩個文件托管在Git平台上

具體可參照Git管理代碼類文章

3.4 數據庫字段的新增修改,初始化數據的修改。

無論是A或者B或者C修改了數據庫的結構或初始化,導出兩份文件,一份結構,一份初始化數據(需要刪除其他非初始化的垃圾臟數據)

3.4.1 導出結構

右鍵要導出的表,單擊數據傳輸

3.4.1.1 選擇文件

3.4.1.2 選擇導出路徑到桌面

3.4.1.3 輸入導出名稱為IBMS_Structure

3.4.1.4 選擇創建表,取消插入記錄

3.4.6最后點開始點確定即可

3.4.7 0錯誤,100%數據傳輸

3.4.2 導出初始化數據文件

3.4.2.1 注意要勾選存儲過程與事件

3.4.2.2 取消創建表,勾選插入記錄

3.4.2.3 其他同上3.4.1 導出結構

3.5 修改之后的兩份sql上傳到Git平台

git add . 
git commit -m "B修改了xxx字段"
git push origin master

具體可參照Git管理代碼類文章

3.6 修改者發送郵件給大家

修改者以郵件形式發送大家修改了哪些字段,其他項目成員可以去看Git,上面會有對比不同的記錄

3.7 同步

其他被同步者把結構跟初始化數據兩份sql pull到本地,重新導入自己獨立的數據庫以達到同步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM