Отримати помилку: Ви повинні встановити принаймні один пакет postgresql-client- <version> під час розгортання на 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 працює нормально, але коли я переношу rake db: migrate, він отримує помилку, яка потребує встановлення pg-клієнта. Де мені потрібно встановити pg-клієнт? Будь-яка допомога


1
Я знайшов [це] [1] рішення і виправлення помилок [1]: stackoverflow.com/questions/17300341 / ...
Dilshod

Відповіді:


203

У системі на базі Debian клієнтські програми PostreSQL надаються postgresql-client-common як символічні посилання на /usr/share/postgresql-common/pg_wrapper.

Якщо ви встановите цей пакет і спробуєте використати будь-яку клієнтську програму PostgreSQL , таку як psql , pg_dump , pg_dumpall та pg_restore , pg_wrapper без встановленої версії двійкового пакета, наприклад postgresql-client-9.1, видасть цю помилку:

Ви повинні встановити принаймні один пакет postgresql-client- <version>

Найпростіший спосіб виправити це - встановити метапакет клієнта postgresql . Це завжди залежить від поточно підтримуваного клієнтського пакету бази даних для PostgreSQL в системах на базі Debian, і це залежить від postgresql-client-common

sudo apt-get install postgresql-client

Дякую за відповідь, jla! Здається , помилка Heroku і я знайшов stackoverflow.com/questions/17300341 / ... вирішити
Dilshod

Ласкаво просимо. Я знайшов це під час пошуку повідомлення про помилку "принаймні одне", використовуючи psql у командному рядку та не використовуючи heroku. Після того, як я знайшов відповідь, я хотів залишити виправлення, специфічне для Debian, яке дає робочий pg_dump та psql для специфічної помилки Debian як альтернативу запропонованому виправленню heroku ігнорування помилки.
jla

1
запуск sudo apt-get install postgresql-clientчерез heroku run bashне працює? Воно повертається bash: sudo: command not found. Чого мені тут не вистачає?
s2t2

8

Оновлення 30 березня 2020 р

Погодьтеся з обраною відповіддю, але я виявив, що встановити postgresql-client-12 на Ubuntu 18 трохи залученіше.

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

Докладніше див. У цьому посиланні .


1
З Ubuntu 20.04 тільки останній рядок інструкцій зробив свою справу.
Холгер Брандл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.