2009-11-04 157 views
3

有沒有人對生產中的安裝有很好的Drupal升級策略?沒有人會在書中討論這一點,在論壇和電子郵件列表中很難找到明確的答案。在生產中升級到Drupal

例:

  1. 鎖定下來督促,不允許 更新數據 複製督促
  2. 複製督促數據庫到dev
  3. 關閉在開發中的所有模塊
  4. 升級核心的Drupal (如有必要,更新db)
  5. dev中的升級模塊(更新db,如果需要 )
  6. 打開模塊
  7. 測試
  8. 遷移代碼和db督促
  9. 反過來現場回
+1

你說的是一個重大的升級,fx從5到6 – googletorp 2009-11-04 08:22:40

+0

嗯好問題。我試圖找出最佳的整體策略。主要升級是否需要稍微不同的步驟? – milesmeow 2009-11-04 14:28:54

+1

絕對。法語先生的回答只適用於小規模升級 - 小升級,在dev中沒有更多的附加變更需要轉移到產品中。 – mikewaters 2009-11-04 15:35:16

回答

4

你的策略聽起來不錯,但它需要一個網站是在「只讀」模式有一會兒。這並不總是可行的。另外我不太確定爲什麼你會打開和關閉所有的模塊?

我可以提出一個稍微不同的方法

  1. 複製督促數據庫到dev
  2. 重複督促代碼開發
  3. 升級核心的Drupal在開發中
  4. 運行update.php
  5. 測試
  6. 對於每個模塊
  7. 。升級模塊dev
  8. 。運行update.php
  9. 。測試
  10. 置於維護模式
  11. 備份數據庫
  12. 代碼遷移到生產
  13. 運行update.php
  14. 放回在線測試

這種方式有很多更多的測試,但少停機時間,如果出現錯誤,您也將能夠確定哪個模塊可以解決問題。它也不會依靠你從dev上傳DB來生活。

+1

+1 - 雖然我會建議交換點7和8;) – 2009-11-04 07:58:04

+1

完成,還添加了「備份數據庫」 – 2009-11-04 10:35:12

+0

我認爲我們應該也把'運行update.php'在開發環境...步驟2.5 – milesmeow 2009-11-04 14:28:00

3

不要以爲在運行update.php之前不需要關閉模塊(除了可能在主要版本之間)。而且我絕對不會爲每個模塊運行一次update.php - 這對更新鉤子的工作方式沒有意義。

如果您對命令行(並在Linux服務器上運行)感到滿意,那麼一定要看看Drush。它可以簡化流程,並允許部分流程腳本化。另外,如果你正在尋找一個正式的更新過程來將你的開發服務器上的東西移動到大型網站的產品上,你還應該加快安裝和更新過程中運行的鉤子。

+0

同意 - 我已經定期升級了大量的Drupal站點,而且沒有關閉模塊,也沒有爲每個站點運行update.php。 – ceejayoz 2009-11-05 06:44:09