我很难从我的本地(MySQL-Rails3)栈迁移到Heroku的(PostgreSQL)栈。代码在本地机器上运行良好,但在Heroku上会产生不想要的结果。
在我的本地机器上:
tickets = Ticket.where(:created_at => (Time.now.midnight.utc)..(Time.now.end_of_day.utc)) 例如,如果现在的时间是2011年7月9日上午10 :10(当地时间),上述代码将返回今天创建的所有票证(2011年7月9日05:00UTC到2011年7月10日05:00UTC之间)。
但在Heroku上,无论时间如何,相同的代码都会返回在2011年7月9日UTC创建的票证。因此,2011年7月9日00:10 UTC创建的门票将包括在内(这将是昨天的门票)。
我的理解是,代码应该为PostgreSQL工作(显然它不能)。如何修复它,使搜索条件包含PostgreSQL上的时间?
发布于 2011-07-10 03:39:15
我猜测Heroku实例默认以UTC运行,因为这实际上是唯一合理的默认设置。
$ heroku config:add TZ=where_ever/you_are还可以查看一下您的config.time_zone设置。
您还应该将开发环境切换到PostgreSQL,以匹配您的部署环境。
https://stackoverflow.com/questions/6635632
复制相似问题