在Rails中出现了pg_dump版本不匹配的问题

5
运行rake db:structure:dump命令时,我遇到了以下错误:
Larson-2:app larson$ rake db:structure:dump
pg_dump: server version: 9.1.3; pg_dump version: 9.0.4
pg_dump: aborting because of server version mismatch
rake aborted!
Error dumping database

我该如何更新pg_dump?我已经安装了pg 9.1.3,有没有一种方法可以将Rails中的引用更新到新版本?

当我尝试通过homebrew更新postgresql时,会得到以下输出:

Larson-2:app larson$ sudo brew upgrade postgresql
Password:
Error: postgresql already upgraded

请使用版本为9.1.3的pg_dump。 - francs
pg_config --bindir 是什么意思? - dbenhur
@dbenhur pg_config --bindir /usr/local/Cellar/postgresql/9.0.4/bin - Andrew Lauer Barinov
我解决了上述问题,但似乎Homebrew只能安装9.0.4而不能安装更新版本。不确定原因。 - Andrew Lauer Barinov
我的问题是Mac OSX自带了这个。我安装了两个版本,它们之间发生了冲突。 - joncodo
显示剩余4条评论
3个回答

5

以下是我解决问题的方法,首先更新homebrew:

brew update
如果你遇到了这个错误:error: Your local changes to the following files would be overwritten by merge:

那么执行以下步骤:

cd /usr/local/cellar
git reset --hard FETCH_HEAD

更新 homebrew 后,执行以下命令安装 PostgreSQL:
sudo brew install postgresql
此操作将安装9.1.3版本(或最新版本)和相关依赖项。

1
在我的机器上,问题出在路径上。/usr/bin 上有一个版本为9.0.10的pg_dump,而我的服务器使用的是9.1.x版本。
将路径更改为使/usr/local/Cellar/postgres/9..../bin(或者实际使用的Postgres安装路径)排在其他路径之前,就可以轻松解决问题。我只需要重新打开任何已打开的终端窗口即可。

0

我也遇到了同样的问题。我按照Postgres命令行工具文档的说明进行操作,然后运行了 rake db:resetrake db:test:prepare 命令来复制我的测试数据库。在完成这些步骤之后,问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接