Get Error: vous devez installer au moins un package postgresql-client- <version> lors du déploiement sur heroku

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 fonctionne bien, mais lorsque je migre rake db: migrate, il obtient une erreur qui doit installer le client pg. Où dois-je installer le client pg? De l'aide

dilshod
la source
1
J'ai trouvé [cette] [1] solution et corrige l'erreur [1]: stackoverflow.com/questions/17300341/…
dilshod

Réponses:

202

Sur un système basé sur Debian, les programmes clients PostreSQL sont fournis par postgresql-client-common sous forme de liens symboliques vers /usr/share/postgresql-common/pg_wrapper.

Si vous installez ce package et essayez d'utiliser l'un des programmes clients PostgreSQL tels que psql , pg_dump , pg_dumpall et pg_restore , pg_wrapper sans avoir installé le package binaire spécifique à la version, comme postgresql-client-9.1, il émettra cette erreur:

Vous devez installer au moins un package postgresql-client- <version>

La manière la plus simple de résoudre ce problème est d'installer le métapaquet postgresql-client . Cela dépend toujours du paquet client de base de données actuellement pris en charge pour PostgreSQL sur les systèmes basés sur Debian et cela dépend de postgresql-client-common

sudo apt-get install postgresql-client
jla
la source
Merci pour la réponse, jla! Il semble bug heroku et j'ai trouvé stackoverflow.com/questions/17300341/... à résoudre
dilshod
Je vous en prie. J'ai trouvé ceci en recherchant le message d'erreur "au moins un" en utilisant psql sur la ligne de commande et en n'utilisant pas heroku. Après avoir trouvé la réponse, je voulais laisser un correctif spécifique à Debian qui donne un pg_dump et un psql fonctionnels pour l'erreur spécifique à Debian comme alternative au correctif heroku suggéré d'ignorer l'erreur.
jla
1
courir sudo apt-get install postgresql-clientvia heroku run bashne fonctionne pas? Il revient bash: sudo: command not found. Qu'est-ce que j'oublie ici?
s2t2
8

Mise à jour 30 mars 2020

D'accord avec la réponse choisie, mais j'ai trouvé d'installer postgresql-client-12 sur un Ubuntu 18 légèrement plus impliqué.

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

Consultez cette référence pour plus de détails.

Arcseldon
la source
1
Avec Ubuntu 20.04, seule la dernière ligne des instructions a fait l'affaire.
Holger Brandl