2010-06-18 62 views
5

我們是一個使用Joomla和自定義PHP腳本的網站開發團隊。問題在於有多個開發人員在處理需要更新Joomla中的信息(添加模塊,更改現有或更改設置)的各種功能,並且當一個開發人員更改某些內容時,他通常首先在本地進行更改,然後執行相同的操作(希望)在生產服務器上。不僅如此,這很容易出錯,但開發人員經常忘記告訴其他開發人員這些變化。自定義PHP腳本很容易在開發人員之間共享,但Joomla中的更改通常會被遺忘,當開發人員嘗試複製其生產中的本地更改時,會導致嚴重的衝突。是否有可能將Joomla置於修訂控制之下?

我曾考慮將Joomla放置在Mercurial存儲庫中,但我們如何才能將開發,測試和生產機器之間的數據更改分發?

回答

6

我們通過顛覆運行我們所有的Joomla網站,根據需要檢查它們。只要我們需要對項目進行重大修改,我們就會分支。

通常,我們運行一個單獨的測試數據庫,這個數據庫在每個人之間共享,以確保我們擁有一致的數據,但是您也可以輕鬆地運行本地數據庫。

0

如果您將所有內容都構建爲擴展模塊(模塊,組件和插件),則它們應包含所需的任何數據庫更改。我會設置它,以便每個開發人員都在處理他們自己的本地數據庫。如果您需要加載測試數據,我只需創建可在安裝所有擴展後運行的MySQL腳本。由於所有這些都可以檢入到回購協議中,因此您應該善於分享代碼。

使用PHP,您應該能夠編寫一個快速腳本,該腳本將以空服務器開始,安裝Joomla !,安裝所有擴展,然後轉儲到任何測試數據中。這對開發人員回到「乾淨」狀態也有好處。我會鼓勵開發者在開始任何新工作之前重新回到黃金狀態。

另一個想法是使用mysqldump來轉儲所有的表。如果用戶在本地機器上更改了數據庫,他們還需要將更改轉儲並檢入。

0

我們在服務器上使用SVN來管理這些類型的問題。如果你要與一個團隊進行任何有效的開發,你必須使用一個版本控制系統。有一個數字,有一個SVN,CVS,GIT的谷歌,這些都是一些最普遍接受的版本控制系統。初始設置可能需要一些時間,但您會從中獲得回報!

希望有幫助!歡呼聲

+0

的主要問題是,數據庫以及我們無法控制安裝或刪除第三方Joomla組件時對數據庫所做的更改的事實。 – Tom 2010-06-23 10:45:18

+0

您可以檢入所有用戶都可以訪問的sql文件。你可以存儲這些數據,或者更新數據例程或者添加列等。也許每個表的sql文件。通過這種方式,您可以查看初始數據庫設置發生了什麼變化,並且可以在必要時將這些更改應用於新的數據庫設置。 – Martin 2010-06-23 13:04:42

2

我們使用SVN爲所有客戶提供單獨的數據庫。 安裝新擴展時,數據庫將發生更改。 在擴展安裝擴展之前,我們知道數據庫之前的差異以及數據庫的差異。

+0

也是一個非常好的主意!我希望有一種方法來分裂答案... – Tom 2010-07-01 07:32:35

1

數據庫同步很棘手,因爲您希望維護存儲在活動站點中的內容,同時更新開發/分段站點中的其他表。

如果只是您的開發人員創建數據庫更改(而不是第三方擴展添加未知附加表),那麼您可以看看DBV https://github.com/victorstanciu/dbv之類的內容。

我已經使用Navicat等數據庫工具設置計劃的數據庫同步方面取得了合理的成功。這是我的建議,因爲它提供了最靈活的定義哪些表在何時何地同步。

另一種選擇可能是看MySQL複製,但我最後一次看,這是難以成立的時候有數據庫之間沒有明顯的主/從關係,可以同步

相關問題