web-dev-qa-db-fra.com

Erreur Postgres "valeur non valide pour le paramètre" TimeZone ":" UTC ""

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!

60
Stephen Nguyen

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.

92
MathiasJ

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
60
Michiel de Mare

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.
12
Turadg

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.

8
Flavio Wuensche

J'ai aussi eu ce problème.

Connectez-vous à la base de données puis émettez:

set time zone utc;
5
Paul Meier

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!

4
fagiani

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é.

3
bcd

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é.

2
deepflame

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.

2
dusan

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
1
Joey

brew services restart postgresql

1
Ricardo Ruwer

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

0
Teddy

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.

0
Jong Bor Lee