我們有一個基於php/mysql的應用程序,它爲許多客戶提供了稍微不同的實例。我們還有不止一位開發人員在開發代碼庫。基於php的web應用程序中的數據庫模式版本控制
在這種情況下管理數據庫模式更改的好方法是什麼?我們是否需要開發人員在需要更改數據庫時編寫一個小腳本?我在想也許我們可以在運行更新腳本的代碼中加入一個檢查,如果它發現新腳本,以便當您執行svn更新並瀏覽到該站點時,它將運行腳本並更新數據庫模式。
PHP中存在標準庫,做到這一點,而不必採取整個框架>
我們有一個基於php/mysql的應用程序,它爲許多客戶提供了稍微不同的實例。我們還有不止一位開發人員在開發代碼庫。基於php的web應用程序中的數據庫模式版本控制
在這種情況下管理數據庫模式更改的好方法是什麼?我們是否需要開發人員在需要更改數據庫時編寫一個小腳本?我在想也許我們可以在運行更新腳本的代碼中加入一個檢查,如果它發現新腳本,以便當您執行svn更新並瀏覽到該站點時,它將運行腳本並更新數據庫模式。
PHP中存在標準庫,做到這一點,而不必採取整個框架>
我的建議是你的方法被閂上。您可以讓每個數據庫更新腳本包含升級和降級方法,以實現輕鬆更新和回滾。如果採用像Doctrine這樣的ORM(http://www.doctrine-project.org/)不是一種選擇,那麼我會建議看看他們對「遷移」的實施,以獲得良好範例和最佳實踐:http://www.doctrine-project.org/documentation/manual/1_2/en/migrations。
您可能想了解如何使用源代碼管理branching。
您可以將您的應用程序的未定製版本保留在主分支中,並從中爲每個需要進行特殊修改的客戶創建一個分支。
如果在主分支中開發了新功能或錯誤修正,則可以將合併爲將這些更改合併到您想要的每個分支。
您可以用這種方式跟蹤PHP代碼和數據庫模式文件的更改。
舉個簡單的例子,我會使用/寫一些像Akelos框架使用,採取look at this screencast(接近分鐘4)。