关于macos:遇到麻烦使用“brew link”在PostgreSQL之间切换

Having Trouble Using “brew link” to switch between PostgreSQLs

我想在Heroku上运行Rails应用程序,所以我使用Homebrew在我的Snow Leopard机器上安装了PostgreSQL。目前,brew将9.1.2安装到/ usr / local / Cellar / postgresql中。经过一些研究,我发现Heroku的免费共享版本需要8.3.x.虽然homebrew-alt没有8.3,但确实有8.4,所以我将其下载并安装到/ usr / local / Cellar / postgresql8中。然后我确认我能够在每个版本上创建和运行数据库。以为我可以使用"brew [link | unlink]来回切换,我运行"brew unlink postgresql8"然后"brew link postgresql"。但是,运行后一个命令会导致此错误:

链接/usr/local/Cellar/postgresql/9.1.2 ......
错误:无法链接postgresql
另一个版本已经链接:/usr/local/Cellar/postgresql/9.1.2

有没有办法做到这一点(来回切换)或者我误解了应该如何使用brew链接/取消链接?

顺便说一下,"brew list"显示"postgresql"和"postgresql8",所以我不认为我应该说"brew link postgresql9"。

谢谢。


使用brew switch,这是Homebrew附带的扩展程序。 在您的情况下,您可以通过运行使用8.4

1
$ brew switch postgresql 8.4


谢谢,mipadi! 这就是诀窍。 我只需要做一件事。 'brew switch'命令假设所有版本的postgresql都安装在/usr/local/Cellar/postgresql中。 版本8.4.8并非如此,因为它安装在/usr/local/Cellar/postgresql8中。 因此,我不得不创建一个指向这个旧版本的符号链接:

1
2
cd /usr/LOCAL/Cellar/postgresql
ln -s ../postgresql8/8.4.8 8.4.8

当然,将数据库集群保存在不同的目录中也是有意义的:

1
2
/usr/LOCAL/var/postgres/8.4.8
/usr/LOCAL/var/postgres/9.1.2