2011-11-17 54 views
1

請問以下工作:如何從Django 1.0.2安全升級到1.3.1?

  1. 取消安裝的Django 1.0.2
  2. 安裝的Django 1.3.1
  3. 開始使用相同的名稱作爲一個老一個「新」的項目。
  4. 手動導入我以前所有的應用程序等
  5. 跨我的手指,我不殺生的。

大概還有的版本,以便將這項工作之間的一些差異顯著? ..是否有一種不那麼痛苦(安全)的方式來做到這一點?

回答

4

這是非常有可能,事情會打破 - 已經有很多的,因爲舊的1.0天Django的變化(好!)。您的第一步實際上可能應該是在升級路徑(特別是「向後不兼容的更改」部分)中閱讀每個主要Django版本的發行說明,以瞭解發生了哪些更改以及需要更改哪些內容。

您還需要計劃做在發展中提升第一(不生產!) - you'll幾乎肯定需要在相當多的地方更新您的項目,所以你要做到這一點脫機,然後完成測試後,將更新後的代碼移到生產中。

發行說明:

https://docs.djangoproject.com/en/dev/releases/1.1/

https://docs.djangoproject.com/en/dev/releases/1.2/

https://docs.djangoproject.com/en/dev/releases/1.3/

1

首先,你一定要做到這一過程在開發環境第一。如果需要,可以創建生產數據庫的轉儲,並將其導入到開發數據庫中。

「卸載」Django是不必要的。我建議只需將您的site-packages目錄中的django文件夾重命名爲django_old之類的文件夾,然後安裝新版本的Django。

runserver啓動你的開發環境,並看看會發生什麼。運行測試套件以確保您使用的應用程序和第三方應用程序沒有任何重大問題。

如果一切正常,您可以在生產機器上重複該過程。老實說,你真的不應該有很多問題,但。 Django很少棄用任何東西,當它們這樣做時,在它實際停止運行之前,多個版本總是存在棄用警告。儘快糾正您收到的任何棄用警告。

1

是有一個痛苦少的(安全)的方式來做到這一點?

是的。 總是使用virtualenv所有您的[新]產品首次展示,從此開始。:)

然後有一個不同版本的新實例啓動並使用不同版本的Django(以及其他更新版本的其他Python庫)運行也沒有什麼大不了的。

您可以保持舊版本的正常運行,直到您確定已準備好執行升級。

很明顯,您需要確保將新版本指向不同的數據庫,並在測試時在不同的端口上運行。除此之外,它應該很好,很簡單。

正如邁克爾指出,你幾乎肯定找到,你需要從1.0-> 1.3做出一些改變,你會想先想着之前解決這些在開發環境中的生產升級。

有用指針夫婦: