Postgres本地恢复Heroku备份将日期时间字段提前4小时

问题描述 投票:0回答:1

我正在我的Mac上恢复下载的Heroku Postgres备份进行一些测试。所有日期时间列(在每个模型中)都已提前4小时。需要解决它。

似乎它必须是时区问题,但我的本地服务器实例与Heroku实例位于同一时区。 (同样的Time.zone.to_s导致我的本地控制台和Heroku控制台)

有任何想法吗?

编辑:我检查了Heroku postgres实例,它的时区是UTC(通过SELECT current_setting('TIMEZONE')检查)。 postgres实例的时区之间的差异感觉就像问题。

我正在尝试将我的本地postgres实例设置为UTC,但它一直在重新回到EDT。

修复:在application.rb中,从config.active_record.default_timezone =:local更改了config.active_record.default_timezone =:utc

ruby-on-rails ruby postgresql heroku heroku-postgres
1个回答
0
投票

我假设你的时区是“东部时间(美国和加拿大)”。

这是有道理的,因为Rails默认将你的created_at日期设置为UTC。所以,时间戳是UTC。

要纠正这个...只需在application.rb中设置你的时区......

module YourAppName
  class Application < Rails::Application
    config.time_zone = "Eastern Time (US & Canada)"
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.