Возникли проблемы с использованием "brew link" для переключения между PostgreSQL - PullRequest
13 голосов
/ 07 января 2012

Я хочу запустить приложение Rails на Heroku, поэтому я установил PostgreSQL на свой компьютер Snow Leopard, используя Homebrew. В настоящее время 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 link / unlink?

Кстати, в «brew list» отображаются «postgresql» и «postgresql8», поэтому я не думаю, что мне следует говорить «brew link postgresql9».

Спасибо.

Ответы [ 2 ]

29 голосов
/ 07 января 2012

Используйте brew switch, который является расширением, поставляемым с Homebrew.В вашем случае вы можете использовать 8.4, запустив

$ brew switch postgresql 8.4
8 голосов
/ 07 января 2012

Спасибо, мипади! Это добилось цели. Была только одна дополнительная вещь, которую мне нужно было сделать. Команда «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

Естественно, также имеет смысл хранить кластеры вашей базы данных в отдельных каталогах:

/usr/local/var/postgres/8.4.8
/usr/local/var/postgres/9.1.2
...