麻烦使用"brew链接"在PostgreSQL之间切换

Ray*_*Ray 13 postgresql macos homebrew

我想在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".

谢谢.

mip*_*adi 29

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

$ brew switch postgresql 8.4
Run Code Online (Sandbox Code Playgroud)


Ray*_*Ray 8

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

cd /usr/local/Cellar/postgresql
ln -s ../postgresql8/8.4.8 8.4.8
Run Code Online (Sandbox Code Playgroud)

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

/usr/local/var/postgres/8.4.8
/usr/local/var/postgres/9.1.2
Run Code Online (Sandbox Code Playgroud)