web-dev-qa-db-fra.com

Pourquoi ne puis-je pas ajouter PostgreSQL à mon chemin?

Après ma mise à niveau vers Mavericks, PostgreSQL a commencé à être lu, donnant ce message d'erreur chaque fois que j'appelle pg_restore sans appeler le chemin complet:

pg_restore: command not found

Si je spécifie le chemin complet, cela fonctionne, mais c'est évident, pas optimal:

/Applications/Postgres93.app/Contents/MacOS/bin/pg_restore --verbose --clean --no-acl --no-owner -h localhost -U steven -d db/testivate_development $file_path

Pour résoudre ce problème, j'ai essayé de supprimer toutes les versions de PostgreSQL (avec Homebrew), puis installé Postgres.app. Vous pouvez confirmer que cela a fonctionné comme ceci:

$ Sudo find / -name pg_restore
/Applications/Postgres93.app/Contents/MacOS/bin/pg_restore
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

Pour ajouter PostgreSQL à mon chemin, j'ai essayé d'ajouter chacune des lignes suivantes à ~/.bash_profile, ~/bashrc et ~/.zshrc, en redémarrant après chaque tentative:

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

... conformément à la documentation de postgresapp.com, puis ...

export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"

... selon les commentaires ci-dessous.

Rien de tout cela n'a résolu mon problème.

14
steven_noble

Essayez d’ajouter cette ligne à votre fichier .bash_profile:

export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"

et supprimez ou commentez la référence précédente.

10
l'L'l

J'ai eu ce problème aussi, donc au lieu de l'ajouter à mon chemin dans .bash_profile:

export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"

qui est ce qui avait été recommandé, j'ai ajouté

export PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"

au lieu. Le '9.3' est remplacé par votre propre version.

Je l'ai vérifié après en utilisant

which psql

Et il a trouvé ma version, alors qu'avant il ne signalait rien.

J'ai ensuite créé une base de données de test avec

createdb test

Cela a fonctionné comme un charme.

9
RubyNoob

Si vous utilisez zsh, essayez cette ligne dans votre .zshrc puis redémarrez le terminal.

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
6
Israel Barba

Les exemples cités par d'autres que export PATH=... devraient être la solution à votre problème. Comme cela ne fonctionne pas, vous allez devoir résoudre un problème avec votre shell qui n'a rien à voir avec PostgreSQL.

Tout d’abord, faites which pg_restore pour voir s’il existe dans votre chemin un autre fichier appelé pg_restore qui pourrait prêter à confusion. which ne donnera généralement pas de résultat plutôt qu'une erreur utile si rien n'est trouvé, sinon, le chemin de ce qu'il a trouvé sera affiché. Vous pouvez trouver une ancienne installation cassée de PostgreSQL dans /usr/local/bin, par exemple.

Si cela ne fonctionne pas, essayez echo $PATH à partir d'un nouveau shell. Voyez-vous le chemin du répertoire binaire PostgreSQL ici? Sinon, $PATH n'est pas défini dans vos fichiers Shell point-rc. Ce serait le cas si vous l'ajoutiez à un fichier appelé ~/bashrc puisque bash (1) lirait réellement ~/.bashrc. Notez le point supplémentaire! Je soupçonne ceci est votre problème actuel.

Si cela ne s'avère pas être le problème, vous pouvez (re) lire le fichier rc dans votre session en cours avec source ~/.bashrc. Encore une fois, echo $PATH Si still ne contient pas le chemin, le fichier point-rc contient un bogue et n’est pas exécuté aussi loin que la partie qui met à jour $PATH. Vous pouvez faire bash --verbose ~/.bashrc pour l'exécuter, et vous verrez chaque commande en cours d'exécution. La commande en échec doit être la dernière affichée. (Notez que lorsque vous exécutez un script avec bash, les variables ne seront pas définies dans votre shell actuel.)

4
pndc

Vous devez ajouter le chemin dans votre bash_profile

nano ~/.bash_profile

Ajouter cette ligne (ma version de postgres est la 9.1):

export PATH = $ PATH: /Library/PostgreSQL/9.1/bin/

4
Guillermo Zacur

Sur macOS Sierra 10.12.1 avec PostgreSQL 9.6.0.0

/Applications/Postgres.app/Contents/MacOS/Postgres

Postgres est un fichier binaire.

0
foobarfuu

sur macOS High Sierra 10.13.2 et PostgreSQL 9.6, cela fonctionne pour moi:

export PATH=$PATH:/Library/PostgreSQL/9.6/bin:$PATH
0
Dmitry Lysenko

Sur mon macOS, Postgre 9.6 est installé dans

/Library/PostgreSQL/9.6
0
user5698801