エラーが発生する:herokuにデプロイするときは、少なくとも1つのpostgresql-client- <version>パッケージをインストールする必要があります


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
:I [1] [本] [1]溶液及び修正エラーを発見stackoverflow.com/questions/17300341/...
ディルショド・

回答:


200

Debianベースのシステムでは、PostreSQLクライアントプログラムはpostgresql-client-commonによってへのシンボリックリンクとして提供されます/usr/share/postgresql-common/pg_wrapper

そのパッケージをインストールして、psqlpg_dumppg_dumpallpg_restoreなどのPostgreSQLクライアントプログラムのいずれかを使用しようとすると、postgresql-client-9.1のように、バージョン固有のバイナリパッケージをインストールせずにpg_wrapperで次のエラーが発生します。

少なくとも1つのpostgresql-client- <バージョン>パッケージをインストールする必要があります

これを修正する最も簡単な方法は、postgresql-clientメタパッケージをインストールすることです。これは常に、Debianベースのシステム上のPostgreSQLで現在サポートされているデータベースクライアントパッケージに依存し、postgresql-client-commonに依存します。

sudo apt-get install postgresql-client

返信ありがとう、jla!それはバグherokuのようで、私はstackoverflow.com/questions/17300341/… を解決するために見つけました
dilshod 2015年

どういたしまして。これは、コマンドラインでpsqlを使用し、herokuを使用しないことによる「少なくとも1つの」エラーメッセージを検索したときに見つかりました。答えを見つけた後、エラーを無視するという提案されたheroku修正の代わりに、Debian固有のエラーに対して機能するpg_dumpとpsqlを提供するDebian固有の修正を残したいと思いました。
jla 2015年

1
sudo apt-get install postgresql-client経由で実行しheroku run bashても機能しませんか?を返しますbash: sudo: command not found。ここで何が欠けていますか?
s2t2 2015

8

2020年3月30日更新

選択した答えに同意しますが、少し複雑なUbuntu18にpostgresql-client-12をインストールすることがわかりました。

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では、手順の最後の行だけでうまくいきました。
Holger Brandl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.