Подтвердить что ты не робот

Postgres error "недопустимое значение для параметра" TimeZone ":" 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'

Я продолжаю получать эту ошибку при попытке перейти к моей базе данных postgres. помощь будет высоко оценена!

4b9b3361

Ответ 1

У меня была такая же проблема с использованием Postgres.app из Heroku. Перезагрузка моего Mac решила его.

Ответ 2

Перезапуск postgresql работает.

Чтобы перезагрузить, если вы установили его с помощью homebrew, brew info postgresql сообщит вам:

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

Ответ 3

brew services restart postgresql

Ответ 4

Попробуйте перезагрузить сервер. Я обновил Postgresql через Homebrew, но забыл перезагрузить сервер и получил эту же проблему. Я считаю, это связано с тем, что клиентские и серверные версии не совпадают. psql начинался с:

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

Ответ 5

Я не думаю, что заслуживаю никаких баллов за это, но перезагрузка моего Postgres.app(что лучше, чем перезагрузка всей системы) решила его для меня. Приложение не отображается на Dock, вы можете найти его на панели навигации в верхней части окна. Надеюсь, он все равно поможет.

Ответ 6

У меня также была эта проблема.

Войдите в базу данных, затем выполните:

set time zone utc;

Ответ 7

Если ничего не исправляется, и вы используете homebrew, скорее всего, у вас есть проблемы с текущими ссылками.

Предполагая, что у вас установлены две версии Postgres, убедитесь, что вы отсоединились, а затем снова подключились. В моем случае мне нужны две версии, работающие для запуска pg_upgrade. У меня есть postgresql95 и postgresql, поэтому я сделал:

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

Это заставило меня работать одновременно. Надеюсь, что это станет полезным, поскольку мне понадобилось время, чтобы понять это!

Ответ 8

На самом деле произошло то, что вы обновили сервер postgresql и очистили свои старые папки, но вы не перезапустили свой сервер postgresql. Сервер искал файлы часовых поясов в удаленном каталоге

Ответ 9

просто перезагрузка базы данных помогла. Homebrew обновил мою установку Postgres, и я еще не перезапустил ее.

Ответ 10

В моем случае перезагрузка базы данных не помогла. Обновление tzdata (apt-get install tzdata) сделало трюк для меня.

Ответ 11

Просто краткая ссылка для тех, кто не использует Postgres.app, но запускает psql из командной строки или через launchctl. Вам нужно будет настроить следующее, где у вас есть данные и файлы журнала Postgres, расположенные по адресу:

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

Ответ 12

У меня была похожая проблема после обновления информации о часовом поясе, то есть загрузки базы данных 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' работал правильно.

Ответ 13

Очевидно, что подобное происходит и с Java/JDBC при подключении к Postgres.

Решение заключается в том, чтобы сообщить JDBC о правильном часовом поясе пользователя в Postgres при получении соединения.

Итак, явное упоминание пользовательского часового пояса при запуске программы помогает:

java -Duser.timezone=America/Los_Angeles com.example.MyMainClass

Замечания:

Добавление здесь, потому что это первый результат в Google для этой проблемы с подключением к Postgres!

Источник:

Этот комментарий Юрия на форуме поддержки Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/839426

Ответ 14

Основываясь на ответе @MathiasJ, вместо перезагрузки всей машины я запустил

brew services restart [email protected]

и мой последующий rake db:create работал отлично.