Изменение часового пояса в существующем проекте Django - PullRequest
5 голосов
/ 27 марта 2009

Как идиот, я полностью пропустил настройку часового пояса, когда впервые создал приложение, которое собирает данные даты и времени.

Тогда это не было проблемой, потому что все, что я делал, - это сравнение стилей и порядок времени. Теперь мне нужно сделать полные отчеты, которые показывают фактическую дату и время, и, конечно же, все они хранятся в Америке / Чикаго (нелепое значение по умолчанию в Django).

Так что да. У меня есть база данных среднего размера, полная этих дат, которые неверны. Я хочу изменить settings.TIME_ZONE на 'UTC', но это не помогает моим существующим данным.

Какой самый лучший (читай: самый простой, самый быстрый) способ преобразования всех этих данных модели в массовом порядке?

(Все данные получены за последние два месяца, поэтому, к счастью, нет DST для преобразования)

Этот проект в настоящее время работает на SQLite, но у меня есть еще один проект на PostgreSQL с аналогичной проблемой, с которой я мог бы захотеть сделать то же самое до того, как включится DST ... Так что в идеале ответ, не зависящий от БД.

1 Ответ

3 голосов
/ 27 марта 2009

Я бы сделал массовое обновление таблиц базы данных, добавив или вычтя часы в / из полей даты и времени.

Примерно так работает в SQL Server и добавляет 2 часа к дате:

update tblName set date_field = dateadd("hh", 2, data_field)
...