Erro Postgres “valor inválido para o parâmetro” TimeZone “:” UTC “”


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

Continuo recebendo esse erro ao tentar migrar para meu banco de dados postgres. Ajuda seria muito apreciada!


2
O comando SET time zone 'UTC'funciona na minha instalação do PostgreSQL 9.1.4.
Erwin Brandstetter

1
Qual versão do PostgreSQL você está usando? Funciona SET time zone 'UTC'em um console psql para você?
Mark Stosberg

Estou usando o 9.1.4 onde / como eu insiro o fuso horário SET 'UTC'?
Stephen Nguyen

1
Jupitor = # SET fuso horário 'UTC'; ERRO: valor inválido para o parâmetro "TimeZone": "UTC"
Stephen Nguyen

1
Postgres (v.9.2.4) não gosta de UTC, use 'GMT'.
PhoebeB

Respostas:


134

Tive o mesmo problema ao usar o Postgres.app do Heroku. Reinicializar meu Mac resolveu isso.


2
Muito estranho, tentei reiniciar o aplicativo e definir o fuso horário. Nenhum dos dois funcionou, reiniciei o mac e boom, sem problemas.
Steve

4
Eu tive esse problema após reinstalar o postgress via brew. Reiniciar o mac ajudou.
maicher

1
reiniciar o postgresql após a atualização corrige o problema "pg_ctl restart"
Jerzyk

4
reiniciar o postgres funcionou para mim também. Meu erro foi ERROR: valor inválido para o parâmetro "TimeZone": "America / Chicago". Só pensei em adicionar este comentário porque perdi tempo procurando por esta mensagem de erro sem perceber que isso também acontece para UTC
Colin D

1
Sinceramente, não consigo acreditar, mas funcionou.
Ryan Sandridge

76

Reiniciar o postgresql funciona.

Para reiniciar se você o instalou usando homebrew, brew info postgresqldirá a você para:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

8
Isso mesmo, isso acontece porque o PostgreSQL foi atualizado, mas não reiniciado.
Fred de

Obrigado, eu teria ficado surpreso se uma reinicialização fosse realmente a única resposta.
sirdharma

6
para o brew você pode reiniciar ainda mais facilmente com brew services restart postgresqlou se usar uma versão específica, algo comobrew servces restart postgresql@9.6
JiuJitsuCoder

Se eu pudesse votar a favor novamente, eu o faria. Encontrei este erro uma segunda vez, fui pesquisar e descobri que este link estava roxo. Reiniciar o postgres resolveu para mim novamente.
Kingdon


15

Tente reiniciar o servidor. Atualizei o Postgresql através do Homebrew, mas esqueci de reiniciar o servidor e tive o mesmo problema. Acredito que seja devido às versões do cliente e do servidor não corresponderem. psql começou com:

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

8

Acho que não mereço nenhum ponto por isso, mas reiniciar meu Postgres.app (que é melhor do que reiniciar todo o sistema) resolveu para mim. O aplicativo não aparece no Dock, você pode encontrá-lo na barra de navegação no topo da janela. Espero que ajude de qualquer maneira.


8

Com base na resposta de @MathiasJ , em vez de reiniciar minha máquina inteira, executei

brew services restart postgresql@9.6

e meu subseqüente rake db:createfuncionou perfeitamente.


1
Essa dica me salvou de uma reinicialização. Obrigado!
Tim Stewart

4

Eu também tive esse problema.

Faça login no banco de dados e emita:

set time zone utc;

23
Não funcionou para mim. ERROR: valor inválido para o parâmetro "TimeZone": "utc"
Flavio Wuensche

4

O que realmente aconteceu é que você atualizou o servidor postgresql e limpou suas pastas antigas, mas não reiniciou o servidor postgresql. O servidor procurou os arquivos de fuso horário no diretório excluído


4

Se nada mais corrigir e acontecer de você estar usando homebrew , é provável que você tenha problemas com os links atuais.

Supondo que você tenha duas Postgresversões instaladas, certifique-se de desvincular e vincular novamente. No meu caso, eu precisava das duas versões funcionando para funcionar pg_upgrade. Eu tenho postgresql95e postgresqlentão eu fiz:

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

Isso me fez trabalhar ao mesmo tempo. Espero que seja útil, pois demorei um bom tempo para descobrir isso!


3

No meu caso, reiniciar o banco de dados não ajudou. Atualizar tzdata ( apt-get install tzdata) funcionou para mim.


2

apenas reiniciar o banco de dados ajudou. O Homebrew atualizou minha instalação do Postgres e eu não reiniciei ainda.


2

Tive um problema semelhante após atualizar as informações de fuso horário, ou seja, baixar o banco de dados IANA e compilar usando zic.

Na verdade, meu problema começou após reiniciar o PostgreSQL. Eu consegui invalid value for parameter TimeZone: UTCe reiniciar novamente não fez nada para resolver o problema.

Acontece que minhas informações de fuso horário ficaram completamente confusas após a atualização. Eu tinha links simbólicos pendentes em /usr/share/zoneinfo. De um console psql, obtive:

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

Excluí todos os links simbólicos pendentes. Depois de fazer isso, pelo menos consegui começar SELECT * FROM pg_timezone_namesa trabalhar, mas ainda assim recebi o mesmo invalid value...erro.

O que finalmente resolveu o problema para mim foi criar um novo link simbólico:

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

Depois disso, SET time zone 'UTC'funcionou corretamente.


1

Apenas uma referência rápida para aqueles que não estão usando Postgres.app, mas que iniciam o psql a partir da linha de comando ou através do launchctl. Você precisará ajustar o seguinte para onde seus dados Postgres e arquivos de log estão localizados em:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log

Eu fiz exatamente isso. Estou acostumado a iniciar / parar o postgres a partir do terminal no Mac e funcionou bem
sebasjimenez10

1

brew services restart postgresqlnão consertou para mim. Tenho certeza de que a reinicialização teria funcionado, mas queria descobrir a causa do problema.


Acredito que o problema foi causado por duas versões conflitantes de postgresql .

Eu já tinha postgresqlexecutado o brew services e instalei o postgresql@11que continuava postgresqlem execução no brew services mesmo depois de desinstalarpostgresql .

Corrigi isso interrompendo o postgresqlserviço de fermentação, embora ele não estivesse listado em brew services list.


Passos para reproduzir:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Como consertar:

$ brew services stop postgresql

Foi aberto um problema no Homebrew solicitando que o serviço de uma fórmula fosse interrompido automaticamente na desinstalação.


Meu problema era que eu tinha postgresql@9.5executado e depois instalado postgresql@9.6. Embora eu tenha desinstalado o 9.5, ele ainda estava em execução. Reiniciar 9.6 não corrigiu. A correção real era parar o 9.5 e reiniciar o 9.6, e então funcionou.
Simon Kissane

Desinstalar todo o postgresql pode tornar isso ainda pior.
theKid

0

Aparentemente, algo semelhante também acontece com Java / JDBC durante a conexão com o Postgres.

A solução é dizer ao JDBC para relatar o fuso horário correto do usuário ao Postgres enquanto obtém a conexão.

Portanto, mencionar explicitamente o fuso horário do usuário ao iniciar o programa ajuda:

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

Nota:

Adicionando aqui porque este é o primeiro resultado no Google para este problema de conexão com o Postgres!

Fonte:

Este comentário de Yuriy no fórum de suporte Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.