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