Rails: デプロイ: タイムゾーン: Heroku

外観

目的
タイムゾーンを考慮してRailsアプリをHerokuにデプロイします。

環境
macOS 10.15.5
Ruby 2.7.1
Rails 6.0.3.2
Yarn 1.22.4
Node 13.12.0
Heroku Postgres 12.3

参照
Railsタイムゾーンまとめ - Qiita
How do I set the timezone on my dyno? - Heroku Help
How to change the Timezone setting for Heroku Postgres? - Heroku Help

方針

対象のアプリは日本国内で開発運用するという前提で、タイムゾーンを日本標準時に統一したいと思います。

1. Rubyプロセス
2. config.time_zone
3. config.active_record.default_timezone
4. DBサーバ

手順

2. config.time_zone
3. config.active_record.default_timezone
上記が設定済みの前回作成したアプリをデプロイします。

config/application.rb

module TryDatetimeSelectReiwa
  class Application < Rails::Application
    # ...
    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local
  end
end

bin/rails db:system:change --to=postgresql
bundle
heroku login
heroku create <APP_NAME>
heroku addons:create heroku-postgresql

# 1. Rubyプロセス
heroku config:add TZ=Asia/Tokyo
heroku run bash
date
exit

# 4. DBサーバ
heroku pg:psql
\conninfo
ALTER DATABASE <YOUR_DATABASE_NAME> SET timezone = 'Asia/Tokyo';
\c
SELECT current_timestamp;
\q

git push heroku <BRABCH_NAME>:master
heroku run rake db:migrate
heroku run rake db:seed
heroku open
heroku logs --tail
# heroku apps:destroy

以上です。

この記事が気に入ったらサポートをしてみませんか?