91
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 数据库时,我不断收到此错误。帮助将不胜感激!

4

15 回答 15

135

我在使用 Heroku 的 Postgres.app 时遇到了同样的问题。重新启动我的 Mac 解决了它。

于 2012-08-17T09:01:37.197 回答
79

重新启动 postgresql 工作。

如果您使用自制软件安装了它,要重新启动,brew info postgresql会告诉您:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
于 2013-12-13T12:39:38.473 回答
21

brew services restart postgresql

于 2019-02-21T17:09:29.003 回答
15

尝试重新启动服务器。我通过 Homebrew 更新了 Postgresql,但忘记重新启动服务器并遇到同样的问题。我相信这是由于客户端和服务器版本不匹配。psql 开始于:

$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
于 2012-08-05T19:05:00.180 回答
14

根据@MathiasJ 的回答,我没有重新启动我的整台机器,而是跑了

brew services restart postgresql@9.6

我的后续rake db:create工作完美。

于 2019-09-24T21:06:30.850 回答
8

我认为我不应该为此获得任何分数,但是重新启动我的 Postgres.app(这比重新启动整个系统要好)为我解决了这个问题。该应用程序不会显示在 Dock 上,您可以在窗口顶部的导航栏上找到它。无论如何,希望它有所帮助。

于 2012-12-04T17:40:03.957 回答
5

如果没有其他解决方法并且您碰巧正在使用homebrew,则您可能对当前链接有问题。

假设您安装了两个Postgres版本,请确保您取消链接,然后再次链接。就我而言,我需要两个版本才能运行pg_upgrade。我有postgresql95postgresql所以我做了:

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

这让我俩同时工作。希望它会有所帮助,因为我花了很长时间才弄清楚这一点!

于 2017-01-31T17:10:05.933 回答
4

我也有这个问题。

登录到数据库然后发出:

set time zone utc;
于 2012-07-17T22:51:25.937 回答
4

实际发生的情况是您升级了 postgresql 服务器并清理了旧文件夹,但尚未重新启动 postgresql 服务器。服务器在已删除目录中搜索时区文件

于 2013-07-19T19:59:46.130 回答
3

在我的情况下,重新启动数据库没有帮助。更新 tzdata ( apt-get install tzdata) 对我有用。

于 2015-04-23T18:36:52.860 回答
2

只是重新启动数据库有帮助。Homebrew 更新了我的 Postgres 安装,但我还没有重新启动。

于 2014-08-25T11:38:39.653 回答
2

我在更新时区信息后也遇到了类似的问题,就是下载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'工作正常。

于 2019-04-02T23:05:08.137 回答
1

对于那些不使用 Postgres.app,但从命令行或通过 launchctl 启动 psql 的人来说,这只是一个快速参考。您需要针对 Postgres 数据和日志文件所在的位置调整以下内容:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
于 2013-10-10T14:00:41.040 回答
1

brew services restart postgresql没有为我修好。我确信重新启动会起作用,但我想找出问题的原因。


我相信这个问题是由于postgresql.

我已经postgresql运行了 brew 服务,然后安装了postgresql@11postgresql,即使在我卸载后仍然在 brew 服务中运行postgresql

我通过停止postgresqlbrew 服务解决了这个问题,即使它没有在brew services list.


重现步骤:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

怎么修:

$ brew services stop postgresql

Opened an issue on Homebrew requesting that a formula's service should automatically be stopped upon uninstall.

于 2019-11-26T03:08:45.773 回答
0

显然,在连接 Postgres 时,Java/JDBC 也会发生类似的事情。

那里的解决方案是告诉 JDBC 在获取连接时向 Postgres 报告正确的用户时区。

因此,在启动程序时明确提及用户时区有助于:

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

笔记:

在此处添加此内容是因为这恰好是 Google 针对此问题连接到 Postgres 的第一个结果!

来源:

Yuriy 在 Jira 支持论坛上的评论: https ://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

于 2018-12-19T09:52:27.547 回答