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 数据库时,我不断收到此错误。帮助将不胜感激!
我在使用 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
尝试重新启动服务器。我通过 Homebrew 更新了 Postgresql,但忘记重新启动服务器并遇到同样的问题。我相信这是由于客户端和服务器版本不匹配。psql 开始于:
$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
我认为我不应该为此获得任何分数,但是重新启动我的 Postgres.app(这比重新启动整个系统要好)为我解决了这个问题。该应用程序不会显示在 Dock 上,您可以在窗口顶部的导航栏上找到它。无论如何,希望它有所帮助。
如果没有其他解决方法并且您碰巧正在使用homebrew
,则您可能对当前链接有问题。
假设您安装了两个Postgres
版本,请确保您取消链接,然后再次链接。就我而言,我需要两个版本才能运行pg_upgrade
。我有postgresql95
,postgresql
所以我做了:
$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql
这让我俩同时工作。希望它会有所帮助,因为我花了很长时间才弄清楚这一点!
我也有这个问题。
登录到数据库然后发出:
set time zone utc;
实际发生的情况是您升级了 postgresql 服务器并清理了旧文件夹,但尚未重新启动 postgresql 服务器。服务器在已删除目录中搜索时区文件
在我的情况下,重新启动数据库没有帮助。更新 tzdata ( apt-get install tzdata
) 对我有用。
只是重新启动数据库有帮助。Homebrew 更新了我的 Postgres 安装,但我还没有重新启动。
我在更新时区信息后也遇到了类似的问题,就是下载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
Opened an issue on Homebrew requesting that a formula's service should automatically be stopped upon uninstall.
显然,在连接 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