Jupitor$ bundle exec rake db:create db:migrate
APP_development already exists
rake aborted!
PG::Error: ERROR: invalid value for parameter "TimeZone": "UTC"
: SET time zone 'UTC'
Je continue à avoir cette erreur en essayant de migrer vers ma base de données postgres . Aide serait très appréciée!
J'ai eu le même problème en utilisant le Postgres.app de Heroku. Le redémarrage de mon Mac a résolu le problème.
Le redémarrage de postgresql fonctionne.
Pour redémarrer si vous l'avez installé avec homebrew, brew info postgresql
vous indiquera de:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Essayez de redémarrer le serveur. J'ai mis à jour Postgresql via Homebrew mais j'ai oublié de redémarrer le serveur et j'ai eu le même problème. Je crois que cela est dû au fait que les versions client et serveur ne correspondent pas. psql a commencé avec:
$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
Je ne pense pas que je mérite des points pour cela, mais le redémarrage de mon Postgres.app (qui est mieux que de redémarrer tout le système) l'a résolu pour moi. L'application n'apparaît pas sur le Dock, vous pouvez la trouver sur la barre de navigation en haut de votre fenêtre. J'espère que ça aide quand même.
J'ai aussi eu ce problème.
Connectez-vous à la base de données puis émettez:
set time zone utc;
Si rien ne résout le problème et que vous utilisez homebrew
, il est probable que vous rencontriez des problèmes avec les liens actuels.
En supposant que vous ayez deux versions Postgres
installées, veillez à dissocier, puis à relier à nouveau. Dans mon cas, j'avais besoin des deux versions pour pouvoir exécuter pg_upgrade
. J'ai postgresql95
et postgresql
alors j'ai fait:
$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql
Cela m'a fait travailler tous les deux en même temps. J'espère que cela deviendra utile, car il m'a fallu un bon moment pour le comprendre!
En réalité, vous avez mis à niveau le serveur postgresql et nettoyé vos anciens dossiers sans avoir redémarré votre serveur postgresql. Le serveur a recherché les fichiers de fuseaux horaires dans le répertoire supprimé.
il suffit de redémarrer la base de données. Homebrew a mis à jour mon installation Postgres et je n'ai pas encore redémarré.
Dans mon cas, le redémarrage de la base de données n'a pas aidé. Mettre à jour tzdata (apt-get install tzdata
) a été efficace pour moi.
Juste une référence rapide pour ceux qui n'utilisent pas Postgres.app, mais qui démarrent psql depuis la ligne de commande ou par launchctl. Vous devrez ajuster les éléments suivants en fonction de l'emplacement de vos données et fichiers journaux Postgres:
pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
brew services restart postgresql
Apparemment, une situation similaire se produit également avec Java/JDBC lors de la connexion à Postgres.
La solution consiste à dire à JDBC de signaler le fuseau horaire de l'utilisateur correct à Postgres lors de l'établissement de la connexion.
Ainsi, mentionner explicitement le fuseau horaire de l'utilisateur lors du démarrage du programme aide:
Java -Duser.timezone=America/Los_Angeles com.example.MyMainClass
Remarque:
En ajoutant ceci ici car il s’agit du premier résultat sur Google pour ce problème de connexion à Postgres!
La source:
Ce commentaire de Yuriy sur le forum d'assistance Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-quot-US- Pacific/qaq-p/839426
J'ai eu un problème similaire après la mise à jour des informations de fuseau horaire, à savoir le téléchargement de la base de données IANA et la compilation à l'aide de zic.
Mon problème a réellement commencé après le redémarrage de PostgreSQL. J'ai eu invalid value for parameter TimeZone: UTC
et redémarrer à nouveau n'a rien fait pour résoudre le problème.
Il s’avère que les informations de mon fuseau horaire ont été complètement altérées après la mise à jour. J'avais des liens symboliques pendant dans /usr/share/zoneinfo
. D'une console psql, j'ai obtenu:
mydb=# SELECT * FROM pg_timezone_names;
ERROR: could not stat "/usr/share/zoneinfo/PRC": No such file or directory
J'ai supprimé tous ces liens symboliques pendantes. Après cela, au moins, je pourrais obtenir que SELECT * FROM pg_timezone_names
fonctionne, mais j'ai toujours la même erreur invalid value...
.
Ce qui a finalement résolu le problème pour moi était de créer un nouveau lien symbolique:
cd /usr/share/zoneinfo
ln -s Etc/UTC UTC
Ensuite, SET time zone 'UTC'
a fonctionné correctement.