2010-09-06 66 views
5

通常在Drupal(6.x)網站啓動後,我有人開始註冊並輸入自己的內容。無論什麼時候需要升級,生產數據庫都會複製到dev,然後開發工作將在dev上完成,之後會被推送到客戶端批准。同步Drupal網站之間的開發,分期和生產

當網站最終準備好上線時,出現問題。生產服務器具有最新的用戶輸入內容,開發和升級具有最新的功能。簡單地覆蓋生產數據庫將不起作用。我通常做的是寫下已經完成的工作,然後按照步驟再次執行生產中的實現。隨着系統變得更大,生產中的一個單一錯誤可能會導致業務中斷。我無法關閉該網站幾個小時。我無法分辨特定時間有多少人在使用該網站,即使如此,也無法等待無人在現場進行升級的時間。

有沒有人有什麼好主意?

在此先感謝。

回答

4

您需要研究兩個概念:第一個是「Exportables」,它通常是導出給定模塊的所有配置的一種方式。第二個是「Features」(非常有名,是),這是將一組Exportables分組成一個給定的變更集以進行版本控制,更新,部署,回滾等的一種方式。

爲了說明起見,許多模塊都實現了自己的「Exportables」方法我上面鏈接的是Exportables模塊。這是一個更廣泛的策略 - http://www.sthlmconnection.se/tips-and-tweaks/exportable-configuration-your-drupal-module-ctools

4

這是百萬美元的問題:如何在不同的Drupal站點之間傳輸代碼,配置和內容?在Drupal中,代碼存儲在文件中(至少應該是),而配置和內容通常在數據庫中。

將代碼從一臺服務器轉移到另一臺服務器並不困難,代碼還有另一個優勢:在SVN或GIT等版本控制系統中存儲和管理容易。這就是爲什麼大多數解決方案專注於將數據從數據庫中取出並放入代碼中。

凱斯軟件已經提到,Features模塊是您需要用代碼存儲配置的模塊。功能有幾個星期以來的穩定版本,社區似乎認同功能是前進的方向。

在網站之間移動內容有點困難,因爲內容可以同時添加或更改開發,登臺和製作。 Exportables是嘗試解決這個問題,但它不是唯一的一個。請確保您還檢出Deploy和基於功能的UUID Features Integration模塊。這些模塊中沒有一個是穩定的,時間會告訴哪一個模塊是最好的解決方案。

+0

Thx。這正是我想要解決的問題,但不確定是否有任何已完成的解決方案。有趣的是,我認爲我從Drupal理所當然地認爲Drupal是一個模塊。我前段時間閱讀和使用Feature和Context來管理這個問題。嘗試了一段時間後,我發現Context模塊不是很穩定。出口是要走的路,但問題是每個模塊都有自己的導出工具。隨着時間的推移,我仍然需要跟蹤每次更新的機會。 – 2010-09-06 20:00:09

+1

我提到的文章強調了實現這一目標的基本點是通過分離配置和內容,在其他領域讓SVN管理配置,並且最新數據應始終來自生產數據庫。在我看來,如果配置在數據庫中,只要Drupal能夠提供一個命名約定,它可以清楚地區分只包含配置的表和僅包含用戶數據的表。 – 2010-09-06 20:09:16

相關問題