相信各位小夥伴在進行團隊開發時都遇到過這個問題:通常開發時,各個團隊成員使用的是本身開發環境上的本地數據庫,這個數據庫只有本身在使用,開發過程當中,數據庫是會常常變更的,好比其餘小夥伴添加了一個字段,或者新增了一張表,那麼此時問題就來了,我如何把其餘小夥伴進行的數據庫變動同步到我本地來?否則我更新代碼後極可能各類報錯。這個雖然是一個小問題,大不了直接再去拷貝一份最新的數據庫出來,可是每次都這樣,很是低效和繁瑣,那這個問題該如何解決?php
開發時團隊成員共用一套數據庫,直接把數據庫的變動同步到這個數據庫上就好了。這個方法簡單粗暴,不過仍是有不爽的地方: 共用數據庫的話,數據就是共用的,我開發測試一個功能時,數據有可能被其餘小夥伴改動了;還有這種方式數據庫變動也要單獨作版本控制。html
每一個小夥伴都使用本地庫開發,有數據庫變動時給其餘人發郵件。
這種方式很是繁瑣,低效,並且極可能其餘小夥伴常常忘記發的狀況。git
使用開源的數據庫版本控制工具。好比dbv ,這個工具安裝配置極其簡單,也能知足如今的使用要求,其實咱們的需求也並很少,主要是:數據庫
其實如何安裝和配置文檔上說的都很詳細,文檔傳送門, 這裏我再重複一遍。apache
下載後解壓到apache
的站點目錄下,或者把它放到別的目錄,配置爲一個虛擬站點也行。
好比我就把它配置爲了一個虛擬站點,DocumentRoot
指向根目錄便可:瀏覽器
httpd-vhosts.conf服務器
Listen 7845 <VirtualHost *:7845> DocumentRoot "E:\devsofts\DBVC\shangsheng" ServerName localhost ErrorLog "logs/localhost_123-error.log" CustomLog "logs/localhost_123_access.log" common DirectoryIndex index.html index.php </VirtualHost>
重啓apache
。svn
php.ini
要打開php_gettext
擴展:工具
extension=php_gettext.dll
複製dbv
根目下的config.php.sample
一份爲config.php
,配置config.php
中的數據庫配置。鏈接到你本地的數據庫。學習
define('DB_HOST', 'localhost'); define('DB_PORT', 3306); define('DB_USERNAME', 'root'); define('DB_PASSWORD', '123456'); define('DB_NAME', 'shangsheng_offical');
配置完成後,在瀏覽器中訪問你剛纔配置的站點就能看到了
dbv
其實也是使用的git
或者svn作的版本控制,這個和通常的項目是同樣的,好比你使用git
的話直接在根目錄下執行
git init
就好了,而後把它提交到git
服務器,方便下一步其餘小夥伴同步更新。
注意: /data/meta/revision
這個文件存儲的是你本地數據庫信息,這個文件必須添加到git
的忽略列表,不然會覆蓋到其餘人的;還有config.php
這個文件也要添加到忽略列表,由於這是你本地的配置。和其餘團隊成員無關。
官方舉例了四個使用場景,其實咱們須要的就是這個,這個是詳細的使用舉例,我就再也不重複了,看這裏
注意:
每一個版本都是放在data\revisions
目錄下的,每一個版本對應一個子目錄,注意這裏的子目錄必須是數字
,不然在瀏覽下看到的是空串,更不支持中文。官方也有說明:
OK, 這個工具就介紹完了,各位小夥伴能夠嘗試一下~,若是你們有更好的管理方式,能夠在留言中探討一下,相互學習。若是個人文章對你有幫助的話,動動手指點個贊吧~ 謝謝!