Django 1.4 USE_TZ迁移,数据库部分:最佳实践?

时间:2012-06-12 09:44:54

标签: django

Django的文档提到在切换到USE_TZ = True时应将所有数据转换为UTC。请参阅:https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#other-databases

这是一个相当简洁的评论。是否有任何脚本/技巧可以“一次性”完成,并且能够在开发和生产中轻松完成相同的转换。

我认为这不是南方应该做的事情,因为USE_TZ设置是在项目级别完成的,而南方迁移则绑定到应用程序。 另外,我不确定南方会从数据中获得什么视图。据推测,South正在重用Django的ORM,因此尝试通过该层执行任何操作都会导致混乱的结果,并且还取决于设置USE_TZ是否已经更改为True。 实际上,这可以说是对通过ORM路由的DB的任何操作。正确的吗?

非常感谢,

克拉斯

1 个答案:

答案 0 :(得分:1)

当文档说“数据”时,它正在讨论固定装置。简单地说,当移动到可识别TZ的数据库时,您需要更新灯具中的任何日期时间字符串。因此,关于灯具的更多部分包含您正在寻找的其他信息。

那就是说,这不是你应该在开发和生产之间来回切换的东西。很多人喜欢使用SQLite进行开发(有充分的理由),但不幸的是,目前还不知道TZ。因此,如果您需要创建一个站点,那么您确实需要在开发中使用不同的数据库。 TZ感知数据很棘手,这不是你第一次去生产时应该测试的东西。你应该在开发时处理它,所以你知道它可以在生产中使用。

因此,Django的建议主要是将旧TZ天真数据一次性迁移到TZ感知数据,而不是如何随心所欲地来回切换它们。