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数据库时,我一直收到此错误消息。 非常感谢帮助!
答案 0 :(得分:102)
我使用Heroku的Postgres.app遇到了同样的问题。重新启动我的Mac解决了它。
答案 1 :(得分:68)
重新启动postgresql。
如果您使用自制程序安装它,要重新启动,brew info postgresql
会告诉您:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
答案 2 :(得分:12)
尝试重新启动服务器。我通过Homebrew更新了Postgresql,但忘了重启服务器并遇到同样的问题。我相信这是由于客户端和服务器版本不匹配。 psql以:
开头$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
答案 3 :(得分:8)
我不认为我应该得到任何分数,但重新启动我的Postgres.app(这比重新启动整个系统更好)解决了它。该应用程序未显示在Dock上,您可以在窗口顶部的导航栏中找到它。希望它无论如何都有帮助。
答案 4 :(得分:7)
我基于@MathiasJ's answer,而不是重新启动整个计算机,而是运行了
brew services restart postgresql@9.6
和我随后的rake db:create
都很好。
答案 5 :(得分:6)
brew services restart postgresql
答案 6 :(得分:5)
我也有这个问题。
登录数据库然后发出:
set time zone utc;
答案 7 :(得分:4)
如果没有其他方法可以解决,而您恰好使用homebrew
,则可能会遇到当前链接的问题。
假设您安装了两个Postgres
版本,请确保取消链接,然后再次链接。就我而言,我需要两个版本才能运行pg_upgrade
。我有postgresql95
和postgresql
,所以我做了:
$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql
这让我两个都在同一时间工作。希望它变得有用,因为我花了很长时间来弄明白这一点!
答案 8 :(得分:3)
实际发生的事情是您升级了postgresql服务器并清理了旧文件夹,但还没有重新启动postgresql服务器。服务器在已删除的目录中搜索时区文件
答案 9 :(得分:2)
只是重新启动数据库帮助。 Homebrew更新了我的Postgres安装,但我还没有重启。
答案 10 :(得分:2)
在我的情况下,重新启动数据库没有帮助。更新tzdata(apt-get install tzdata
)为我做了诀窍。
答案 11 :(得分:1)
只是那些没有使用Postgres.app但是从命令行或通过launchctl启动psql的快速参考。您需要调整以下内容,以便将Postgres数据和日志文件放在以下位置:
pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
答案 12 :(得分:1)
brew services restart postgresql
不适用于我。我确定重新启动会行得通,但是我想找出问题的原因。
我认为此问题是由postgresql
的两个相互冲突的版本引起的。
我已经让postgresql
与brew服务一起运行,然后安装了postgresql@11
,即使卸载了postgresql
之后,postgresql
仍在Brew服务中运行。
我通过停止postgresql
酿造服务来解决此问题,即使该服务未在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
在Homebrew上打开了issue,要求在卸载后自动停止公式的服务。
答案 13 :(得分: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
答案 14 :(得分:0)
更新时区信息后,我也遇到了类似的问题,即下载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'
正常工作。