【发布时间】:2013-02-14 02:17:32
【问题描述】:
在 Rails 中,我首先有以下用于 activerecord 的配置。
config.active_record.default_timezone = :utc
现在,我想使用本地时区,所以我将其更改为:
config.active_record.default_timezone = :local
问题是,我需要将日期/日期时间列中的所有现有数据转移到本地时区。 实现这一目标的最佳方法是什么?
为什么我必须这样做是因为我必须在本地时区上进行聚合,例如 :group => 'DATE(created_at)', GROUP BY DATE(created_at) 将基于 UTC,但我想聚合当地时区一天。
我知道如何编写迁移文件来迁移某个日期时间列。但是这样的专栏有很多,所以我正在寻找更好的解决方案。
【问题讨论】:
-
您是否存储了任何指示给定用户所在时区的信息?如下所述,除非另有说明,否则切换到本地时区会将每个值设置为服务器的时区。
-
@Chris 用户被限制在与服务器相同的时区。
标签: ruby-on-rails ruby ruby-on-rails-3 migration