Error de Postgres "valor no válido para el parámetro" TimeZone ":" UTC ""

89
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'

Sigo recibiendo este error cuando intento migrar a mi base de datos de postgres. ¡La ayuda sería muy apreciada!

Stephen Nguyen
fuente
2
El comando SET time zone 'UTC'funciona en mi instalación de PostgreSQL 9.1.4.
Erwin Brandstetter
1
¿Qué versión de PostgreSQL estás usando? ¿ SET time zone 'UTC'Funciona en una consola psql para ti?
Mark Stosberg
Estoy usando 9.1.4 ¿dónde / cómo ingreso la zona horaria SET 'UTC'?
Stephen Nguyen
1
Jupitor = # SET zona horaria 'UTC'; ERROR: valor no válido para el parámetro "TimeZone": "UTC"
Stephen Nguyen
1
A Postgres (v.9.2.4) no le gusta UTC, use 'GMT' en su lugar.
PhoebeB

Respuestas:

135

Tuve el mismo problema al usar Postgres.app de Heroku. Reiniciar mi Mac lo solucionó.

MathiasJ
fuente
2
Realmente extraño, intenté reiniciar la aplicación y configurar la zona horaria. Ninguno de los dos funcionó, luego reinició mac y boom, sin problemas.
Steve
4
Tuve este problema después de reinstalar postgress a través de brew. Reiniciar mac ayudó.
maicher
1
reiniciar postgresql después de la actualización soluciona el problema "pg_ctl restart"
Jerzyk
4
reiniciar Postgres también funcionó para mí. Mi error fue ERROR: valor inválido para el parámetro "TimeZone": "América / Chicago". Solo pensé en agregar este comentario porque perdí el tiempo buscando este mensaje de error sin darme cuenta de que también sucede para UTC
Colin D
1
Honestamente, no puedo creerlo, pero esto realmente funcionó.
Ryan Sandridge
77

Reiniciar postgresql funciona.

Para reiniciar si lo ha instalado usando homebrew, brew info postgresqlle indicará que:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Michiel de Mare
fuente
8
Así es, esto sucede porque PostgreSQL se actualizó pero no se reinició.
Fred
Gracias, me hubiera sorprendido si un reinicio hubiera sido realmente la única respuesta.
sirdharma
6
para la preparación, puede reiniciar aún más fácil con brew services restart postgresqlo si usa una versión específica, algo comobrew servces restart [email protected]
JiuJitsuCoder
Si pudiera votar esto de nuevo, lo haría. Me encontré con este error por segunda vez, busqué y descubrí que este enlace era morado. Reiniciar postgres me lo resolvió nuevamente.
Kingdon
19

brew services restart postgresql

Ricardo Ruwer
fuente
15

Intente reiniciar el servidor. Actualicé Postgresql a través de Homebrew pero olvidé reiniciar el servidor y tuve el mismo problema. Creo que se debe a que las versiones del cliente y del servidor no coinciden. psql comenzó con:

$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
Turadg
fuente
8

No creo que merezco ningún punto por eso, pero reiniciar mi Postgres.app (que es mejor que reiniciar todo el sistema) lo resolvió por mí. La aplicación no aparece en el Dock, puedes encontrarla en la barra de navegación en la parte superior de tu ventana. Espero que ayude de todos modos.

Flavio Wuensche
fuente
8

Basado en la respuesta de @ MathiasJ , en lugar de reiniciar toda mi máquina, ejecuté

brew services restart postgresql@9.6

y mi subsiguiente rake db:createfuncionó a la perfección.

PJSCopeland
fuente
1
Este consejo me salvó de reiniciar. ¡Gracias!
Tim Stewart
4

Yo también tuve este problema.

Inicie sesión en la base de datos y luego emita:

set time zone utc;
Paul Meier
fuente
23
No funcionó para mí. ERROR: valor no válido para el parámetro "TimeZone": "utc"
Flavio Wuensche
4

Lo que realmente sucedió es que actualizó el servidor postgresql y limpió sus carpetas antiguas, pero no ha reiniciado su servidor postgresql. El servidor buscó los archivos de zonas horarias en el directorio eliminado

Cristian Bica
fuente
4

Si nada más se soluciona y está utilizando homebrew, es probable que tenga problemas con los enlaces actuales.

Suponiendo que tiene dos Postgresversiones instaladas, asegúrese de desvincular y luego vincular nuevamente. En mi caso, necesitaba que las dos versiones funcionaran para funcionar pg_upgrade. Yo tengo postgresql95y postgresqlasí lo hice:

$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql 

Eso hizo que ambos trabajaran al mismo tiempo. ¡Espero que sea útil ya que me tomó un buen tiempo darme cuenta de eso!

fagiani
fuente
3

En mi caso, reiniciar la base de datos no ayudó. Actualizar tzdata ( apt-get install tzdata) hizo el truco para mí.

dusan
fuente
2

simplemente reiniciar la base de datos ayudó. Homebrew actualizó mi instalación de Postgres y aún no reinicié.

llama profunda
fuente
2

Tuve un problema similar después de actualizar la información de la zona horaria, es decir, descargar la base de datos de IANA y compilar usando zic.

En realidad, mi problema comenzó después de reiniciar PostgreSQL. tengoinvalid value for parameter TimeZone: UTC y reiniciar nuevamente no hizo nada para resolver el problema.

Resulta que la información de mi zona horaria se estropeó por completo después de la actualización. Tenía enlaces simbólicos colgando /usr/share/zoneinfo. Desde una consola psql, obtuve:

mydb=# SELECT * FROM pg_timezone_names;
ERROR:  could not stat "/usr/share/zoneinfo/PRC": No such file or directory

Eliminé todos esos enlaces simbólicos colgantes. Después de hacer esto, al menos pude ponerme SELECT * FROM pg_timezone_namesa trabajar, pero aún así obtuve el mismo invalid value...error.

Lo que finalmente resolvió el problema para mí fue crear un nuevo enlace simbólico:

cd /usr/share/zoneinfo
ln -s Etc/UTC UTC

Después de esto, SET time zone 'UTC'funcionó correctamente.

Jong Bor Lee
fuente
1

Solo una referencia rápida para aquellos que no están usando Postgres.app, pero que inician psql desde la línea de comandos o mediante launchctl. Deberá ajustar lo siguiente para dónde tiene sus archivos de registro y datos de Postgres ubicados:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
Joey
fuente
Hice exactamente esto. Estoy acostumbrado a iniciar / detener postgres desde la terminal en Mac y esto funcionó bien
sebasjimenez10
1

brew services restart postgresqlno me arregló. Estoy seguro de que reiniciar habría funcionado, pero quería averiguar la causa del problema.


Creo que el problema se debió a dos versiones conflictivas de postgresql.

Ya me había postgresqlejecutado con brew services, y luego instalé lo postgresql@11que dejó postgresqlen ejecución en brew services incluso después de desinstalarlo postgresql.

Arreglé esto deteniendo el postgresqlservicio de preparación, aunque no estaba en la lista brew services list.


Pasos para reproducir:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Como arreglar:

$ brew services stop postgresql

Se abrió un problema en Homebrew que solicitaba que el servicio de una fórmula se detuviera automáticamente al desinstalarlo.

JBallin
fuente
Mi problema fue que lo había [email protected]ejecutado y luego lo instalé [email protected]. Aunque había desinstalado 9.5, todavía se estaba ejecutando. Reiniciar 9.6 no lo solucionó. La solución real fue detener 9.5 y luego reiniciar 9.6, y luego esto funcionó.
Simon Kissane
La desinstalación de todo postgresql podría empeorar las cosas.
theKid
0

Aparentemente, algo similar también sucede con Java / JDBC mientras se conecta a Postgres.

La solución es decirle a JDBC que informe la zona horaria correcta del usuario a Postgres mientras obtiene la conexión.

Por lo tanto, mencionar explícitamente la zona horaria del usuario al iniciar el programa ayuda:

java -Duser.timezone=America/Los_Angeles com.example.MyMainClass

Nota:

Agregando esto aquí porque este es el primer resultado en Google para este problema al conectarse a Postgres.

Fuente:

Este comentario de Yuriy en el foro de soporte de Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Osito de peluche
fuente