版本控制軟件有svn git等等,這些工具控制源碼版本非常好用,但數據庫的版本控制呢?傳統方法是導出來整個數據庫,這樣的團隊協作效率非常低。有沒有一種工具,能方便同步數據庫結構的呢?有的,也很多,本人使用dbv,能集成到PHP+MYSQL的項目中,很方便。
dbv1.1版本下載 https://github.com/victorstanciu/dbv/archive/1.1.zip
使用方法:
1. 下載後,解壓到已經在git或SVN版本軟件控制下的工程目錄下,比如本人的工程目錄是93zp_project, 解壓後,dbv在93zp_project/dbv-master ,把dbv-master/data設置為可寫權限。
2.把config.conf.sample 修改為config.conf 修改如下紅色地方
define('DB_HOST', 'localhost');
define('DB_PORT', 3306);
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '123456');
define('DB_NAME', '93zp');
其中 93zp就為要版本控制的數據庫。
3.訪問 http://localhost/93zp_project/dbv-master/index.php 輸入用戶名dbv 密碼dbv, 可以再config.conf修改這個用戶名密碼。就可以看到93zp的數據庫表了,每次修改的記錄都可以看到如下頁面:
列【In DB】表示 記錄是否在數據庫中,列【On disk】表示記錄是否導出到硬盤了。上面看到On disk的值為NO表示都還沒有導出修改記錄。
4.按按鈕【Export to disk】,把記錄導出,這樣修改記錄就能保存在dbv-master/data/schema 下面了。
團隊成員更新工程後,也通過訪問http://localhost/93zp_project/dbv-master/index.php 能看出哪些記錄需要導入到數據庫中的,勾選相應的記錄,按按鈕[push to databse]就可以同步數據庫了!同步後,In DB是 YES 狀態,比如下圖, 修改記錄aaa 與 ssss 都已經同步了。