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'
尝试迁移到我的postgres数据库时,我一直收到此错误。帮助将不胜感激!
SET time zone 'UTC'
可以在psql控制台中使用?
Answers:
使用Heroku的Postgres.app时遇到了同样的问题。重新启动Mac即可解决。
重新启动PostgreSQL的作品。
如果您是使用自制软件安装的,brew info postgresql
则要重新启动,将告诉您:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
brew services restart postgresql
或使用特定版本来更轻松地重新启动,例如brew servces restart postgresql@9.6
我认为我没有任何意义,但是重新启动Postgres.app(比重新启动整个系统更好)为我解决了问题。该应用程序未显示在Dock上,您可以在窗口顶部的导航栏中找到它。希望它能有所帮助。
实际发生的情况是您升级了postgresql服务器并清理了旧文件夹,但尚未重启postgresql服务器。服务器在已删除的目录中搜索时区文件
更新时区信息后,即下载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'
正常工作。
对于不使用Postgres.app,但从命令行或通过launchctl启动psql的用户,只是快速参考。您需要针对Postgres数据和日志文件所在的位置进行以下调整:
pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
brew services restart postgresql
没有为我解决。我确定重新启动会行得通,但我想找出问题的原因。
我认为该问题是由于的两个版本冲突而导致的postgresql
。
我已经postgresql
运行过brew服务,然后进行安装postgresql@11
,postgresql
即使我卸载了它也可以在brew服务中运行postgresql
。
我通过停止postgresql
Brew服务来解决此问题,即使该服务未在中列出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上打开了一个问题,要求在卸载后自动停止公式的服务。
postgresql@9.5
运行,然后安装了postgresql@9.6
。即使我卸载了9.5,它仍在运行。重新启动9.6不能修复它。实际的解决方法是停止9.5,然后重新启动9.6,然后此方法起作用。
显然,连接到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-quote-US-Pacific/qaq-p/ 839426
SET time zone 'UTC'
可在我的PostgreSQL 9.1.4安装中使用。