2015-08-14 56 views
3

我有一個在生產服務器上運行的小應用程序。在下一次更新中,數據庫模式將會改變;這意味着生產數據庫模式將需要改變,並且需要進行一些數據操作。Node.js,Express,MySQL - 更新模式

這樣做的最好方法是什麼? I.E運行一次性腳本以在部署到生產服務器時完成這些任務?

堆棧: 的NodeJS Expressjs MySQL的使用節點的MySQL Codeship Elasticbeanstalk

謝謝!

+0

*「I.E運行一次性腳本以在部署到生產服務器時完成這些任務」*這通常是一個很好的選擇,只要確保所述腳本的一部分涉及創建備份即可。 –

回答

3

「最好的方式」取決於你的情況。這很少發生,還是可能定期發生?有多少臺生產服務器?是否有其他環境,例如用於集成測試,分期等?你的開發人員在他們的機器上有自己的數據庫環境嗎?你的過程是否涉及持續集成?

您的景觀越複雜,使用Todd R建議的解決方案(Liquibase,Flywaydb)就越好。

如果你只是有一個生產服務器,它可以是停機維護了幾個小時後,它可能是足以

  1. 預約維修停機時間與你的利益相關者和用戶
  2. 關閉服務器
  3. 創建備份
  4. 根據需要更新
  5. 部署軟件更新
  6. 數據庫結構和內容0
  7. 重新啓動服務器
  8. 測試結果(手動或自動)
  9. 通知您的利益相關者和用戶

如果出現任何錯誤,回滾到數據庫和軟件的備份版本。

建議使用數據庫更新腳本。經過一次或多次測試後更可取。提前創建備份至關重要。