Il y a quatre fuseaux horaires à considérer:
Time.now
etc.Time.zone.now
etc.NOW ()
etc. des instructions SQLAjout de «ENV TZ Asia / Tokyo» à «Dockerfile» pour prendre en charge
Correspondant en définissant TZ = Asia / Tokyo
dans la variable d'environnement
config.time_zone
config/application.rb
config.time_zone = 'Tokyo'
config.active_record.default_timezone
config/application.rb
config.active_record.default_timezone = :local
DB Connectez-vous à chaque base de données d'environnement de développement et d'environnement de production et exécutez la requête suivante
ALTER DATABASE db_name SET timezone TO 'Asia/Tokyo';
Puisqu'il s'agit de la méthode d'écriture pour Postgres, la méthode d'écriture peut différer selon le type de DB.
Il sera reflété lorsque vous vous reconnecterez à la base de données.
L'exécution de rails: db: migrate
restaurera le fuseau horaire, mais ce n'est pas grave car vous écrivez rarement des instructions SQL dans Rails en premier lieu.
Il semble y avoir un moyen de définir des variables d'environnement dans docker-compose.yml, mais cela n'a pas fonctionné.
Recommended Posts