Ruby on rails 3 Postgres错误“;参数“的值无效”;时区“&引用;UTC"&引用;

Ruby on rails 3 Postgres错误“;参数“的值无效”;时区“&引用;UTC"&引用;,ruby-on-rails-3,postgresql,Ruby On Rails 3,Postgresql,当我尝试迁移到我的postgres数据库时,我一直遇到这个错误。 非常感谢您的帮助 我也有这个问题 登录数据库,然后发出: 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数据库时,我一直遇到这个错误。
非常感谢您的帮助

我也有这个问题

登录数据库,然后发出:

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'

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

set time zone utc;

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

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

实际发生的情况是,您升级了postgresql server并清理了旧文件夹,但尚未重新启动postgresql server。服务器在已删除目录中搜索时区文件,这只是那些不使用Postgres.app,但从命令行或通过launchctl启动psql的文件的快速参考。您需要根据Postgres数据和日志文件的位置调整以下内容:

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

重新启动postgresql是可行的

若要在使用自制软件安装后重新启动,则
brew info postgresql
将告诉您:

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

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

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

如果没有其他解决方法,而您恰好使用的是
自制的
,那么您很可能会遇到当前链接的问题

假设您安装了两个
Postgres
版本,请确保取消链接,然后重新链接。在我的例子中,我需要两个版本才能运行
pg\u升级
。我有
postgresql95
postgresql
,所以我做了:

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

这让我俩同时工作。希望它能对我有所帮助,因为我花了很长时间才明白这一点

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

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

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

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

在这里添加这个,因为这是谷歌上第一个连接到Postgres的结果

资料来源:

Yuriy在Jira支持论坛上的以下评论:

brew服务重新启动postgresql更新时区信息后,我遇到了类似的问题,即下载IANA数据库并使用zic编译

我的问题实际上是在重新启动PostgreSQL之后开始的。我得到了参数时区的无效值:UTC,再次重新启动并没有解决问题

结果是我的时区信息在更新后被完全弄乱了。我在
/usr/share/zoneinfo
中有悬挂的符号链接。从psql控制台,我得到:

java -Duser.timezone=America/Los_Angeles com.example.MyMainClass
我删除了所有这些悬挂的符号链接。这样做之后,至少我可以从pg_timezone_names获得
SELECT*来工作,但仍然得到相同的
无效值…
错误

最终为我解决问题的是创建一个新的符号链接:

mydb=# SELECT * FROM pg_timezone_names;
ERROR:  could not stat "/usr/share/zoneinfo/PRC": No such file or directory
在此之后,
设置时区“UTC”
工作正常。

基于,我没有重新启动整个机器,而是运行了

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

我随后的
rake db:create
工作得很好。

brew服务重新启动postgresql
没有为我解决问题。我相信重新启动会奏效,但我想找出问题的原因


我相信这个问题是由两个相互冲突的
postgresql
版本引起的

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

我通过停止
postgresql
brew服务解决了这个问题,即使它没有列在
brew服务列表中


复制步骤:

brew services restart postgresql@9.6
如何修复:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

在自制程序上打开了一个,请求卸载时自动停止公式服务。

命令
设置时区“UTC”
在我的PostgreSQL 9.1.4安装中起作用。您使用的是哪个PostgreSQL版本?
设置时区“UTC”
是否在psql控制台中为您工作?我使用的是9.1.4,在哪里/如何输入设置时区“UTC”?Jupitor=#设置时区“UTC”;错误:参数“TimeZone”的值无效:“UTC”Postgres(v.9.2.4)不喜欢UTC,请改用“GMT”。对我不适用。错误:参数“TimeZone”的值无效:“utc”非常奇怪,尝试重新启动应用程序并设置时区。两者都不起作用,然后重新启动mac和boom,没有问题。我在通过brew重新安装postgress后遇到了这个问题。重新启动mac很有帮助。升级后重新启动postgresql修复了问题“pg_ctl restart”重新启动postgres对我也很有效。我的错误是错误:参数“TimeZone”的值无效:“America/Chicago”。我只是想添加这条评论,因为我浪费了时间搜索这条错误消息,没有意识到UTCI也会发生这种情况。老实说,我不敢相信,但这确实起了作用。没错,这是因为PostgreSQL已升级但未重新启动。谢谢,如果重新启动真的是唯一的答案,我会感到惊讶。对于brew,您可以使用
brew服务重新启动postgresql
或使用特定版本(如
brew服务重新启动)更轻松地重新启动postgresql@9.6
如果我能再次投票,我会的。刚才遇到了这个错误
$ brew services stop postgresql