2012-06-12 45 views
0

Django的文档提到,切换到USE_TZ = True时,所有数据都应该转换为UTC。参见:https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#other-databasesDjango 1.4 USE_TZ迁移,数据库部分:最佳实践?

这是一个相当简洁的评论。是否有任何脚本/技巧可以“一气呵成”做到这一点,并且能够轻松地在开发和生产中进行相同的转换。

我想这不是南方人应该做的事情,因为USE_TZ设置在项目级完成,而南迁移绑定到应用程序。 另外,我不确定South会从数据中得到什么看法。据推测,South正在重复使用Django的ORM,因此试图通过该层做任何事情都会导致令人困惑的结果,并且还取决于设置USE_TZ是否已更改为True。事实上,这可以说是任何对通过ORM路由的数据库的操纵。正确?

非常感谢,

克拉斯

+0

同样的问题问在http://stackoverflow.com/questions/17667527/django-south-migration-and-use-tz-true/21028859#21028859 – Bryce

回答

1

当文档说 “数据”,它在谈论灯具。简单地说,当移动到TZ意识的数据库时,您需要更新灯具中的任何日期时间字符串。所以,进一步介绍灯具的部分包含您正在寻找的其他信息。

这就是说,这不是你应该在开发和生产之间来回改变的东西。很多人喜欢使用SQLite进行开发(出于很好的理由),但很遗憾,目前并不知道TZ。所以,如果你需要创建一个网站,你真的需要在开发中使用不同的数据库。 TZ意识到的数据非常棘手,而且这并不是您在开始制作时第一次应该测试的内容。你应该在开发时处理它,所以你知道它会在生产中起作用。

其结果是,Django的建议是集中在老TZ天真的数据一次性迁移到TZ感知的数据,你不能怎么切换他们来回心血来潮。

+0

我严重怀疑文档说“数据”,并谈论灯具。链接的部分特别提到数据库类型(以及因为灯具没有住在数据库中,我看不出这将使任何意义) 另外,我的问题是什么,使开关的最好的办法是和你答案没有(还)回答。 –

+0

“最佳方式”,因为该文档(下简称“灯具”部分)和I指示的,是运行'dumpdata'然后'loaddata',并手动更改任何现有的固定装置。简而言之,并不是一个真正好的切换方式,你将不得不做一些工作。期。 –