2011-09-24 47 views
2

我需要一些關於將Django更新,特別是數據庫更新從我的開發服務器推送到我的生產服務器的建議。我相信更新腳本,文件等很容易 - 只需將新文件從開發服務器複製到生產服務器即可。但是,數據庫更新是我不確定的。將Django更新推送到生產服務器

對於Django,我在創建初始Web應用程序期間一直使用South來更改數據庫模式。如果我在生產服務器上有更新停機時間,我可以將所有文件複製到生產服務器上。這些將包括並更改描述數據庫表的models.py文件。然後我可以執行python manage.py schemamigration my_app --auto然後python migrate my_app根據我複製的新文件/ models.py更新數據庫。

這是一個好的解決方案,還是有更合適的方法來將數據庫從開發更新到生產服務器?

您的想法?

感謝

回答

1

其實,python manage.py schemamigration my_app --auto只會創建基於models.py變化的遷移。要實際將遷移應用到數據庫,您需要運行python manage.py migrate my_app。另一種選擇是在開發服務器上創建遷移(通過運行schemamigration),然後將遷移文件複製到生產服務器並通過運行migrate來應用遷移。

當然,有一個源代碼庫會比複製文件好。您可以在開發服務器上創建遷移,將其提交到存儲庫,在生產服務器上從存儲庫中提取新文件,最後應用遷移。

+0

好吧,我遺漏了遷移操作的第二部分。我編輯了我的問題以反映第二個命令。我想知道的是,這種方法是否適合將數據庫更改推送到生產服務器,或者如果我應該考慮更新數據庫模式的另一種更行業標準方法。 – Garfonzo