Get Error: Sie müssen mindestens ein postgresql-client- <version> -Paket installieren, wenn Sie es auf heroku bereitstellen

87
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 funktioniert einwandfrei, aber wenn ich rake db: migrate migriere, wird ein Fehler angezeigt, der den pg-Client installieren muss. Wo muss ich pg client installieren? Irgendeine Hilfe

Dilshod
quelle
1
Ich fand [diese] [1] Lösung und behebte
dilshod

Antworten:

187

Auf einem Debian-basierten System werden die PostreSQL-Client-Programme von postgresql-client-common als symbolische Links zu bereitgestellt /usr/share/postgresql-common/pg_wrapper.

Wenn Sie dieses Paket installieren und versuchen, eines der PostgreSQL-Clientprogramme wie psql , pg_dump , pg_dumpall und pg_restore zu verwenden , gibt der pg_wrapper ohne das versionierte Binärpaket wie postgresql-client-9.1 diesen Fehler aus:

Sie müssen mindestens ein postgresql-client- <Versions> -Paket installieren

Der einfachste Weg, dies zu beheben, ist die Installation des Metapakets postgresql-client . Es hängt immer vom aktuell unterstützten Datenbank-Client-Paket für PostgreSQL auf Debian-basierten Systemen ab und von postgresql-client-common

sudo apt-get install postgresql-client
jla
quelle
Danke für die Antwort, jla! Es scheint Bug Heroku und ich fand stackoverflow.com/questions/17300341/… zu lösen
Dilshod
Bitte. Ich habe dies gefunden, als ich nach der "mindestens einen" Fehlermeldung gesucht habe, weil ich psql in der Befehlszeile und nicht heroku verwendet habe. Nachdem ich die Antwort gefunden hatte, wollte ich einen Debian-spezifischen Fix hinterlassen, der einen funktionierenden pg_dump und psql für den Debian-spezifischen Fehler als Alternative zum vorgeschlagenen Heroku-Fix zum Ignorieren des Fehlers enthält.
Jla
1
Laufen sudo apt-get install postgresql-clientüber heroku run bashfunktioniert nicht? Es kehrt zurück bash: sudo: command not found. Was vermisse ich hier?
s2t2
2

Update 30. März 2020

Stimmen Sie der gewählten Antwort zu, aber ich fand, dass die Installation von postgresql-client-12 auf einem Ubuntu 18 etwas komplizierter ist .

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

Siehe diese Referenz für Details.

arcseldon
quelle
Mit Ubuntu 20.04 hat nur die letzte Zeile der Anleitung den Trick gemacht.
Holger Brandl