Обновление PG::ConnectionBad до Yosemite и postgresql 9.4.4

Я только что обновил свой Mac OS X до Yosemite версии 10.10.4 и postgresql до: psql (PostgreSQL) 9.4.4.

После запуска rake db:migrate в моем приложении Rails 4.2.1 моя терминальная сессия отвечает:

rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?

Простой ввод psql в моем терминальном сеансе также выглядит немного не так:

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Распечатав логи из cat /usr/local/var/postgres/server.log, я прочитал:

DETAIL:  The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 9.4.4.
LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server

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

Этот ответ SO предлагает удалить a, /usr/local/var/postgres/postmaster.pid, но у меня его нет, у меня есть, /usr/local/var/postgres/postmaster.opts -- следует ли удалить postmaster.opts?

Кажется, есть много советов, но я не слишком уверен, чему следовать. Может ли кто-нибудь дать совет по запуску моей базы данных postgresql в моем приложении rails?


person robskrob    schedule 04.08.2015    source источник


Ответы (2)


Вы можете обновить базу данных, следуя официальному руководству:

brew switch postgres 9.3    # presuming you already installed 9.4.4
pg_dumpall > outputfile
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres.old
brew switch postgres 9.4.4
initdb -D /usr/local/var/postgres
psql -d postgres -f outputfile

Обновление PostgreSQL

person adamliesko    schedule 04.08.2015
comment
Определенно более чистый ход. Это отлично сработало для меня. - person Abel; 26.09.2015
comment
Мне пришлось запустить БД после initdb, с launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist. - person Graham Perks; 01.10.2015
comment
я тоже. если вы используете доморощенный, перезапустите postgresql с помощью brew services restart postgresql - person bryanus; 25.03.2016

По сути, мне пришлось удалить и воссоздать свою собственную базу данных и повторно заполнить ее удаленными промежуточными данными. Чего я не понял, так это того, что проблема с обновлением базы данных заключается в том, что сами данные также должны быть каким-то образом «обновлены». Данные были совместимы с другой версией

person robskrob    schedule 05.08.2015