关于macos:PG :: ConnectionBad升级到Yosemite和postgresql 9.4.4

PG::ConnectionBad upgrade to Yosemite and postgresql 9.4.4

我刚刚将我的mac OS X更新为Yosemite,版本10.10.4,并将postgresql更新为:psql(PostgreSQL)9.4.4。

在我的Rails 4.2.1应用程序上运行rake db:migrate后,我的终端会话响应:

1
2
3
4
5
6
7
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也会显得有些偏差:

1
2
3
4
$ 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中打印出日志后,我读到:

1
2
3
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答案表明我删除了一个/usr/local/var/postgres/postmaster.pid,但我没有,我有一个/usr/local/var/postgres/postmaster.opts - 我应该删除postmaster.opts?

似乎有很多建议,但我不太清楚要遵循什么。有人可以提供一些建议让我的postgresql数据库在我的rails应用程序上运行吗?


您可以按照官方指南升级数据库:

1
2
3
4
5
6
7
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升级


基本上,我不得不删除并重新创建自己的数据库,并使用远程登台数据重新播种。 我不明白的是,更新数据库的问题是数据本身也需要以某种方式"更新"。 数据与不同版本兼容