Oficjalna strona nie wspomina o takim przypadku. Ale wielu użytkowników potrzebuje tylko psql
bez lokalnej bazy danych (mam ją na AWS). Brew nie ma psql
.
Oficjalna strona nie wspomina o takim przypadku. Ale wielu użytkowników potrzebuje tylko psql
bez lokalnej bazy danych (mam ją na AWS). Brew nie ma psql
.
Odpowiedzi:
Możesz także użyć homebrew do zainstalowania libpq.
brew install libpq
Dałoby to psql, pg_dump i całą masę innych narzędzi klienckich bez instalowania Postgres.
Następnie dodaj katalog instalacyjny do swojej ścieżki. W moim przypadku lokalizacja katalogu to:
/usr/local/Cellar/libpq/10.3/bin
brew link --force libpq
ale spowoduje to utworzenie wielu innych linków symbolicznych, których możesz nie chcieć / potrzebować.
ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql
/ ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dump
/ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
PATH=/usr/local/opt/libpq/bin:$PATH
aby dodać wszystkie polecenia do ścieżki za jednym razem, używając nazwy katalogu, która nie zmienia się wraz z wersją libpq
, którą instalujesz.
Homebrew tak naprawdę ma tylko formułę postgres i nie ma żadnej określonej formuły, która tylko instaluje psql
narzędzie.
Tak więc „poprawnym sposobem” uzyskania psql
aplikacji jest rzeczywiście zainstalowanie formuły postgres , a na dole sekcji „ostrzeżenia” zobaczysz, że w rzeczywistości nie uruchamia ona bazy danych, tylko umieszcza pliki w systemie :
$ brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺 /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB
Teraz możesz używać psql
do łączenia się ze zdalnymi serwerami Postgres i nie będziesz uruchamiać lokalnego, chociaż możesz, jeśli naprawdę chcesz.
Aby sprawdzić, czy lokalny postgres
demon nie działa, sprawdź zainstalowane usługi homebrew:
$ brew services list
Name Status User Plist
mysql stopped
postgresql stopped
Jeśli nie masz zainstalowanych usług Homebrew , po prostu
$ brew tap homebrew/services
... a otrzymasz tę funkcjonalność. Aby uzyskać więcej informacji na temat usług Homebrew , przeczytaj ten doskonały wpis na blogu, który wyjaśnia, jak to działa .
brew link
kroku. Wymuszenie linku za pomocą libpq jest konieczne ze względu na deklarację keg_only w formule. Biorąc pod uwagę tę specyficzną komplikację , uważam, że ta odpowiedź jest „prawidłową” drogą do zrobienia tego, o czym mówi pytanie. Zdaję sobie jednak sprawę, że wielu użytkowników nadal będzie preferować to libpq
podejście.
libpq 11.2
MacOS i zsh lub bash
poniżej działa
libpq
brew install libpq
zaktualizuj PATH
jeśli używasz zsh:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
jeśli używasz bash:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
jeśli używasz basha.
Jeśli naprawdę nie potrzebujesz postgresql, nie musisz nawet zmieniać ścieżki korzystania z biblioteki, po prostu połącz libpq
. Dokumentacja podaje, że jedynym powodem, dla którego tak nie jest, jest unikanie konfliktów z pakietem PostgreSQL.
brew uninstall postgresql
brew install libpq
brew link --force libpq
Uważam, że wszystkie te rzeczy są naprawdę niezadowalające, zwłaszcza jeśli musisz obsługiwać wiele wersji postgresów. DUŻO łatwiejszym rozwiązaniem jest pobranie plików binarnych tutaj:
https://www.enterprisedb.com/download-postgresql-binaries
I po prostu uruchom wersję wykonywalną, psql
która pasuje do bazy danych, z którą pracujesz, bez żadnych dodatkowych kroków.
przykład:
./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
Możesz spróbować brew install postgresql
Ale zapewnia to przyjemny GUI do zarządzania bazami danych https://postgresapp.com
brew install postgresql
zainstaluj psql z samą bazą danych :(