Uzyskaj błąd: podczas wdrażania do heroku należy zainstalować co najmniej jeden pakiet postgresql-client- <wersja>

91
sdilshod@sdilshod-Lenovo-B590:~/webapp/saturn$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.6194
DEPRECATION WARNING: You have Rails 2.3-style plugins in    vendor/plugins! Support for these plugins will be removed in Rails 4.0.  Move them out and bundle them in your Gemfile, or fold them in to your app  as lib/myplugin/* and config/initializers/myplugin.rb. See the release  notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2- 0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in  vendor/plugins! Support for these plugins will be removed in Rails 4.0.   Move them out and bundle them in your Gemfile, or fold them in to your app   as lib/myplugin/* and config/initializers/myplugin.rb. See the release   notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-  0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
 Error: You must install at least one postgresql-client-<version> package.
 rake aborted!
 Error dumping database
 /app/vendor/bundle/ruby/1.9.1/gems/activerecord-   3.2.12/lib/active_record/railties/databases.rake:415:in `block (3 levels)   in <top (required)>'
 /app/vendor/bundle/ruby/1.9.1/gems/activerecord- 3.2.12/lib/active_record/railties/databases.rake:188:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/railties/databases.rake:182:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)

heroku pg: psql działa dobrze, ale kiedy wykonuję migrację rake db: migrate, pojawia się błąd, który wymaga zainstalowania klienta pg. Gdzie muszę zainstalować klienta pg? Jakaś pomoc

dilshod
źródło
1
Znalazłem [to] [1] rozwiązanie i naprawiłem błąd [1]: stackoverflow.com/questions/17300341/…
dilshod

Odpowiedzi:

202

W systemie opartym na Debianie programy klienckie PostreSQL są dostarczane przez postgresql-client-common jako dowiązania symboliczne do /usr/share/postgresql-common/pg_wrapper.

Jeśli zainstalujesz ten pakiet i spróbujesz użyć dowolnego z programów klienckich PostgreSQL, takich jak psql , pg_dump , pg_dumpall i pg_restore , pg_wrapper bez zainstalowanego pakietu binarnego specyficznego dla wersji, jak postgresql-client-9.1 , wyemituje ten błąd:

Musisz zainstalować co najmniej jeden pakiet postgresql-client- <version>

Najłatwiejszym sposobem rozwiązania tego problemu jest zainstalowanie metapakietu postgresql-client . Zawsze zależy od aktualnie obsługiwanego pakietu klienta bazy danych dla PostgreSQL w systemach opartych na Debianie i zależy od postgresql-client-common

sudo apt-get install postgresql-client
jla
źródło
Dzięki za odpowiedź, jla! Wygląda na to, że błąd Heroku i znalazłem stackoverflow.com/questions/17300341/… do rozwiązania
dilshod
Nie ma za co. Znalazłem to podczas wyszukiwania komunikatu o błędzie „co najmniej jeden” przy użyciu psql w wierszu poleceń i nie używaniu heroku. Po znalezieniu odpowiedzi chciałem zostawić poprawkę specyficzną dla Debiana, która daje działające pg_dump i psql dla specyficznego błędu Debiana jako alternatywę dla sugerowanej poprawki Heroku polegającej na ignorowaniu błędu.
jla
1
bieganie sudo apt-get install postgresql-clientprzezheroku run bash nie działa? Wraca bash: sudo: command not found. Czego tu brakuje?
s2t2
8

Aktualizacja 30 marca 2020 r

Zgadzam się z wybraną odpowiedzią, ale okazało się, że instalacja postgresql-client-12 na Ubuntu 18 jest nieco bardziej skomplikowana.

sudo apt update
sudo apt -y install vim bash-completion wget
sudo apt -y upgrade
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt -y install postgresql-client-12

Szczegółowe informacje można znaleźć w tym dokumencie .

arcseldon
źródło
1
W Ubuntu 20.04 wystarczyła ostatnia linijka instrukcji.
Holger Brandl