2012-04-08 67 views
2

在我的settings.py我使用America/Chicago作爲我的默認TIME_ZONE變量。我將盡快更新到django 1.4。作爲MySql用戶,我想知道在升級之前是否有任何我需要知道的信息。從Django 1.3遷移mysql datetime字段到django 1.4

升級到1.4的原因當然是django 1.4提供的時區支持,這對我目前的工作非常重要。我注意到MySQL時間戳記對象不是UTC格式(我的模型都使用DateTimeField())。

我該怎麼辦?

回答

1

我現在正在處理這個升級,不幸的是沒有一個清晰的路徑可以遵循。 django 1.4遷移指南指示數據庫中的值需要被轉換,但是那個this isn't possible deterministically

所以你將不得不轉換的價值,但知道在某些情況下,夏時制轉換轉換將不完美。我打算在django 1.4中使用新的make_aware(value, timezone)函數來轉換日期時間值,我將在輸入日期時間後添加一小時後重試轉換來處理異常。

這裏是specific details and lots more sample code for converting local time to UTC in python

+0

謝謝。我已經設法升級。我花了我一些時間,因爲一些模塊(如Django通知或Django的頭像,甚至南)需要修改/更新。我也有一些問題,使用新的模板時區過濾器,所以我寫了我的。在我的模板過濾器中,我也使用類似於你所建議的方法。我發現make_aware()和make_naive()非常有用。總結遷移並不是很容易。我花了一些時間。我也必須對模型進行一些更改。 – xpanta 2012-04-26 15:25:50