Подтвердить что ты не робот

Почему я не могу добавить PostgreSQL на свой путь?

После того, как я обновился до Mavericks, PostgreSQL начал играть, передавая это сообщение об ошибке всякий раз, когда я вызываю pg_restore, не вызывая полный путь:

pg_restore: command not found

Если я укажу полный путь, который он работает, но это очевидно не оптимально:

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

Чтобы устранить эту проблему, я попытался удалить все версии PostgreSQL (с помощью Homebrew), а затем установить Postgres.app. Вы можете подтвердить, что это сработало следующим образом:

$ 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

Чтобы добавить PostgreSQL к моему пути, я попытался добавить каждую из следующих строк в ~/.bash_profile, ~/bashrc и ~/.zshrc, перезапустив после каждой попытки:

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

... согласно документации postgresapp.com, а затем...

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

... согласно комментариям ниже.

Ничто из этого не решило мою проблему.

4b9b3361

Ответ 1

Попробуйте добавить эту строку в свой .bash_profile:

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

и удалите или закомментируйте предыдущую ссылку.

Ответ 2

У меня тоже была эта проблема, поэтому вместо добавления этого к моему пути в .bash_profile:

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

что было рекомендовано, я добавил

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

вместо этого. "9.3" заменяется вашей собственной версией.

Я проверил его позже, используя

which psql

И он нашел мою версию, тогда как до нее ничего не сообщалось.

Затем я создал тестовую базу данных с

createdb test

Это работало как прелесть.

Ответ 3

Другие примеры дают то, что export PATH=... должно быть решением вашей проблемы. Поскольку он не работает, вам придется отлаживать проблему с вашей оболочкой, которая не имеет ничего общего с PostgreSQL.

Во-первых, do which pg_restore, чтобы увидеть, есть ли в вашем пути другой файл с именем pg_restore, который путает вещи. which обычно не дает результата, а не полезной ошибки, если ничего не найдено, иначе он напечатает путь к тому, что он нашел. Например, вы можете найти старую сломанную установку PostgreSQL в /usr/local/bin.

Если это не сработало, попробуйте echo $PATH из новой оболочки. Вы видите путь к двоичному каталогу PostgreSQL? Если нет, $PATH не устанавливается в ваших файлах dot-rc оболочки. Это было бы так, если бы вы добавили его в файл с именем ~/bashrc, так как bash (1) действительно прочитал ~/.bashrc. Обратите внимание на дополнительную точку! Я подозреваю, что это ваша фактическая проблема.

Если это не проблема, вы можете (повторно) прочитать rc файл в текущем сеансе с помощью source ~/.bashrc. Опять же, echo $PATH Если он все еще не содержит путь, файл dot-rc содержит ошибку и не выполняется в той части, которая обновляет $PATH. Вы можете выполнить bash --verbose ~/.bashrc, чтобы запустить его, и вы увидите каждую команду при ее выполнении. Последняя команда должна быть последней. (Обратите внимание, что при запуске script с bash он не будет устанавливать переменные в вашей текущей оболочке.)

Ответ 4

Вам нужно добавить путь в файл bash_profile

nano ~/.bash_profile

Добавьте эту строку (моя версия postgres - 9.1):

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

Ответ 5

Если вы используете zsh, попробуйте эту строку в вашем .zshrc, а затем перезапустите терминал

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

Ответ 6

В macOS Sierra 10.12.1 с PostgreSQL 9.6.0.0

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

Postgres - двоичный файл.

Ответ 7

В моем macOS Postgre 9.6 установлен в

/Library/PostgreSQL/9.6

Ответ 8

на macOS High Sierra 10.13.2 и PostgreSQL 9.6 он работает для меня:

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