2012-01-07 10 views
12

Voglio eseguire un'app Rails su Heroku così ho installato PostgreSQL sulla mia macchina Snow Leopard usando Homebrew. Attualmente, brew installa 9.1.2 in/usr/local/Cellar/postgresql. Dopo alcune ricerche, ho scoperto che la versione gratuita e condivisa di Heroku richiede 8.3.x. Mentre homebrew-alt non ha 8.3, ha 8.4 quindi l'ho scaricato e installato in/usr/local/Cellar/postgresql8. Ho quindi confermato che sono in grado di creare ed eseguire database su ciascuna versione. Pensando che potrei usare "brew [link | unlink] per passare avanti e indietro, ho eseguito" brew unlink postgresql8 "e quindi" brew link postgresql ". Tuttavia, l'esecuzione di quest'ultimo comando genera questo errore:Problemi con l'utilizzo di "brew link" per passare da PostgreSQLs

Collegamento/usr/local/Cantina/postgresql/9.1.2 ... Errore: non è possibile collegare PostgreSQL Un'altra versione è già collegato: /usr/local/Cellar/postgresql/9.1.2

esiste un modo per fare questo (passare avanti e indietro) o sto fraintendendo come si dovrebbe utilizzare brew link/unlink?

A proposito, "brew list" mostra "postgresql" e "postgresql8" quindi non penso che sia il caso che spoglio d dire "brew link postgresql9".

Grazie.

+0

0 accettato risposte, 0 upvotes, non è esattamente cooperativo. –

+0

Scusate ma sono nuovo di Stackoverflow e sto trovando l'interfaccia piuttosto confusa per operare. – William

risposta

29

Utilizzare brew switch, che è un'estensione fornita con Homebrew. Nel tuo caso, potresti usare 8.4 eseguendo

$ brew switch postgresql 8.4 
+0

FYI, per me, brew non collegava tutti i comandi relativi a Postgres. Ad esempio, pg_ctl passerebbe da una versione all'altra, ma psql non lo farebbe. Ho dovuto cambiare psql manualmente per usare il comando della nuova versione, da /usr/local/Cellar/postgresql/9.2.4/bin/psql –

+0

Dato che non ho mai installato il 'postgres vanilla', dovevo farlo per passare:' brew scollegare postgresql95 && brew link postgresql94 --force' –

7

Grazie, mipadi! Questo ha fatto il trucco. C'era solo una cosa aggiuntiva che dovevo fare. Il comando 'brew switch' presume che tutte le versioni di postgresql siano installate in /usr/local/Cellar/postgresql. Questo non era il caso con la versione 8.4.8 come è stato installato in /usr/local/Cellar/postgresql8. Di conseguenza, ho dovuto creare un link simbolico a punto a questa versione più vecchia:

cd /usr/local/Cellar/postgresql 
ln -s ../postgresql8/8.4.8 8.4.8 

Naturalmente, ha senso anche per mantenere i cluster di database in directory separate:

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