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