Ответ 1
Попробуйте добавить эту строку в свой .bash_profile:
export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"
и удалите или закомментируйте предыдущую ссылку.
После того, как я обновился до 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"
... согласно комментариям ниже.
Ничто из этого не решило мою проблему.
Попробуйте добавить эту строку в свой .bash_profile:
export PATH="/Applications/Postgres93.app/Contents/MacOS/bin:$PATH"
и удалите или закомментируйте предыдущую ссылку.
У меня тоже была эта проблема, поэтому вместо добавления этого к моему пути в .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
Это работало как прелесть.
Другие примеры дают то, что 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
он не будет устанавливать переменные в вашей текущей оболочке.)
Вам нужно добавить путь в файл bash_profile
nano ~/.bash_profile
Добавьте эту строку (моя версия postgres - 9.1):
export PATH = $PATH:/Library/PostgreSQL/9.1/bin/
Если вы используете zsh, попробуйте эту строку в вашем .zshrc, а затем перезапустите терминал
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
В macOS Sierra 10.12.1 с PostgreSQL 9.6.0.0
/Applications/Postgres.app/Contents/MacOS/Postgres
Postgres
- двоичный файл.
В моем macOS Postgre 9.6 установлен в
/Library/PostgreSQL/9.6
на macOS High Sierra 10.13.2 и PostgreSQL 9.6 он работает для меня:
export PATH=$PATH:/Library/PostgreSQL/9.6/bin:$PATH