web-dev-qa-db-ja.com

Postgresエラー「パラメータ「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'

Postgresデータベースに移行しようとすると、このエラーが発生し続けます。助けていただければ幸いです!

73
Stephen Nguyen

HerokuのPostgres.appを使用しても同じ問題が発生しました。 Macを再起動すると解決しました。

112
MathiasJ

Postgresqlの再起動が機能します。

Homebrewを使用してインストールした場合に再起動するには、brew info postgresqlは次のことを指示します。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
71
Michiel de Mare

サーバーを再起動してください。 Homebrewを使用してPostgresqlを更新しましたが、サーバーを再起動するのを忘れて、同じ問題が発生しました。クライアントとサーバーのバージョンが一致していないことが原因だと思います。 psqlの開始:

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

brew services restart postgresql

9
Ricardo Ruwer

私はその点に値するとは思いませんが、Postgres.appを再起動する(システム全体を再起動するよりも良い)ことで解決しました。このアプリはDockには表示されません。ウィンドウ上部のナビゲーションバーに表示されます。とにかく役立つことを願っています。

8
Flavio Wuensche

私もこの問題を抱えていました。

データベースにログインして、次を発行します。

set time zone utc;
4
Paul Meier

他に何も修正されず、たまたまhomebrewを使用している場合、現在のリンクに問題がある可能性があります。

2つのPostgresバージョンがインストールされていると仮定して、必ずリンクを解除してから再度リンクしてください。私の場合、pg_upgradeを実行するには2つのバージョンが必要です。 postgresql95postgresqlがあるので、

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

それで私は両方とも同時に働きました。それを理解するのにかなりの時間がかかったので、それが役立つことを願っています!

4
fagiani

実際に起こったことは、postgresqlサーバーをアップグレードし、古いフォルダーをクリーンアップしたが、postgresqlサーバーを再起動していないことです。サーバーは、削除されたディレクトリでタイムゾーンファイルを検索しました

3
bcd

データベースを再起動するだけで役立ちました。 HomebrewはPostgresのインストールを更新しましたが、まだ再起動しませんでした。

2
deepflame

私の場合、データベースの再起動は役に立ちませんでした。 tzdataの更新(apt-get install tzdata)トリックをしてくれました。

2
dusan

タイムゾーン情報を更新した後、同様の問題が発生しました。つまり、IANAデータベースをダウンロードし、zicを使用してコンパイルしました。

私の問題は実際に始まりました PostgreSQLを再起動します。 invalid value for parameter TimeZone: UTCを取得しましたが、再起動しても問題は解決しませんでした。

更新後にタイムゾーン情報が完全に台無しになったことがわかりました。 /usr/share/zoneinfoにぶら下がるシンボリックリンクがありました。 psqlコンソールから、私は得た:

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

そのようなぶら下がりシンボリックリンクをすべて削除しました。これを実行した後、少なくともSELECT * FROM pg_timezone_namesが機能するようになりましたが、それでも同じinvalid value...エラーが発生しました。

最終的に私にとって問題を解決したのは、新しいシンボリックリンクを作成することでした:

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

この後、SET time zone 'UTC'は正常に機能しました。

1
Jong Bor Lee

Postgres.appを使用していないが、コマンドラインまたはlaunchctlを介してpsqlを起動する場合のクイックリファレンスです。 Postgresのデータとログファイルがある場所に応じて、以下を調整する必要があります。

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

どうやら、Postgresへの接続中にJava/JDBCでも同様のことが起こります。

そこにある解決策は、接続を取得している間、Postgresに正しいユーザータイムゾーンを報告するようJDBCに指示することです。

そのため、プログラムの起動時にユーザーのタイムゾーンを明示的に指定すると役立ちます。

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

注意:

これがPostgresへの接続に関するこの問題のGoogleでの最初の結果であるためです。

ソース:

Jiraサポートフォーラムに関するYuriyのコメント: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/ qaq-p/839426

0
Teddy