2013-07-15 64 views
6

我在一所大學工作,並已指示在尋找使用源代碼控制系統(GIT,SVN等)來管理網站。我們使用嚴重依賴MySQL的Joomla。使用Git管理Joomla網站?

目前,我們有一個使用每當我們改變一個網站,推到一個活的服務器開發服務器勉強功能系統。這是一種痛苦,並不總是有效。另外,我們可以並經常覆蓋另一位開發人員所做的更改。

我們希望能夠通過在Dev分支Joomla的前端管理的內容,然後推動這些變化的測試分支,然後到主(活)的分支。

如果沒有托特下車他雜草:我的問題是,從本質上講,什麼是管理使用CMS如Joomla依賴的數據庫網站一個很好的策略?

+0

翻譯你談論你的內容或你的代碼? – Elin

+0

我寧願管理Joomla的內容。我只關心讓代碼和數據庫保持同步。 – Kickasstimus

+0

這個問題可能更適合[程序員](http://programmers.stackexchange.com),不確定。但根據我的經驗,數據庫很難通過源代碼控制版本。然而,您可以使用的一種策略是將任何SQL腳本,查詢等作爲'.sql'文件保存在Git中,並在需要對數據庫進行更改(如更改表等)時運行這些策略。但是,那些是數據庫結構的變化。如果你想管理Joomla **內容**,那麼最好的辦法可能就是頻繁備份。 – 2013-07-16 04:32:07

回答

3

既然你也想要同步的數據庫(內容存儲在數據庫,同時圖像和媒體都在文件系統),則需要提交/推腳本也轉儲數據庫到文件,並拉腳本加載數據庫。這可以通過前後鉤子,http://githooks.com/或谷歌它。

但是會有的Joomla的不同部分,你將要分別同步。

讓我們考慮三個服務器:

  • 編輯服務器:其中內容管理
  • 開發服務器:其中擴展測試和配置
  • 測試服務器
  • 生產服務器

讓我們考慮的信息三層:

  1. 用戶和會話數據:這不應該在所有這樣的人不會註銷同步,如果任何用戶在生產服務器的登錄上註冊將被保留。

  2. 的內容,用戶組和資產(特權):這是文章,新聞,其中有從編輯去測試生產開發(除非你有內容的圖像在用戶層面,即每個用戶的權限特異性,對每個內容項獨立的權限)

  3. 模板,擴展模塊,菜單配置:這會從開發測試生產編輯

每個組數據將需要自己的分公司和他們的自定義的預提交鉤子在提交/推相關的數據庫表,包括。每個組的表格列表取決於您正在使用的擴展名。

我曾經寫過一篇文章是在意大利和SVN的,但你可以抓住一些我們使用的是bash腳本:或谷歌http://translate.google.com/translate?sl=it&tl=en&js=n&prev=_t&hl=it&ie=UTF-8&u=http%3A%2F%2Fwww.fasterjoomla.com%2Fjoomla-tips%2Fsvn-per-joomla

+0

如果將生成的轉儲文件保存在VCS中,我會使用'--skip-comments'和'--skip-dump-date'命令行選項轉儲到'mysqldump'來推薦MySQL表 - 這會增加生成的文件與前一次轉儲的結果差異較小的機會。 MySQL授權可以使用Percona工具套件(以前的Maatkit)的'mk-show-grants'工具轉儲,如下所示:'mk-show-grants --noheader --notimestamp --drop --flush'。 – kostix