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!
                    
                        ruby-on-rails-3
                                postgresql
                                
                    
                    
                        Stephen Nguyen
fuente
                
                fuente

SET time zone 'UTC'funciona en mi instalación de PostgreSQL 9.1.4.SET time zone 'UTC'Funciona en una consola psql para ti?Respuestas:
Tuve el mismo problema al usar Postgres.app de Heroku. Reiniciar mi Mac lo solucionó.
fuente
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.plistfuente
brew services restart postgresqlo si usa una versión específica, algo comobrew servces restart [email protected]brew services restart postgresqlfuente
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.fuente
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.
fuente
Basado en la respuesta de @ MathiasJ , en lugar de reiniciar toda mi máquina, ejecuté
brew services restart postgresql@9.6y mi subsiguiente
rake db:createfuncionó a la perfección.fuente
Yo también tuve este problema.
Inicie sesión en la base de datos y luego emita:
set time zone utc;fuente
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
fuente
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 funcionarpg_upgrade. Yo tengopostgresql95ypostgresqlasí lo hice:$ brew unlink postgresql $ brew unlink postgresql95 $ brew link postgresql95 $ brew link --overwrite postgresqlEso hizo que ambos trabajaran al mismo tiempo. ¡Espero que sea útil ya que me tomó un buen tiempo darme cuenta de eso!
fuente
En mi caso, reiniciar la base de datos no ayudó. Actualizar tzdata (
apt-get install tzdata) hizo el truco para mí.fuente
simplemente reiniciar la base de datos ayudó. Homebrew actualizó mi instalación de Postgres y aún no reinicié.
fuente
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. tengo
invalid value for parameter TimeZone: UTCy 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 directoryEliminé 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 mismoinvalid 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 UTCDespués de esto,
SET time zone 'UTC'funcionó correctamente.fuente
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.logfuente
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é lopostgresql@11que dejópostgresqlen ejecución en brew services incluso después de desinstalarlopostgresql.Arreglé esto deteniendo el
postgresqlservicio de preparación, aunque no estaba en la listabrew services list.Pasos para reproducir:
Como arreglar:
Se abrió un problema en Homebrew que solicitaba que el servicio de una fórmula se detuviera automáticamente al desinstalarlo.
fuente
[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ó.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:
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
fuente