出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包

Posted

技术标签:

【中文标题】出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包【英文标题】:Get Error: You must install at least one postgresql-client-<version> package when deploy to heroku 【发布时间】:2015-04-02 03:38:17 【问题描述】:
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 客户端?任何帮助

【问题讨论】:

我找到了 [this][1] 解决方案并修复了错误 [1]:***.com/questions/17300341/… 【参考方案1】:

2020 年 3 月 30 日更新

同意选择的答案,但我发现在 Ubuntu 18 上安装 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

详情请见this reference。

【讨论】:

在 Ubuntu 20.04 中,最后一行指令就可以解决问题。 对于 PostgreSQL 13,请在此处查看他们的(几乎相同的)指南:computingforgeeks.com/how-to-install-postgresql-13-on-ubuntu【参考方案2】:

在基于 Debian 的系统上,PostreSQL 客户端程序由 postgresql-client-common 作为指向 /usr/share/postgresql-common/pg_wrapper 的符号链接提供。

如果您安装该软件包并尝试使用任何 PostgreSQL 客户端程序,例如 psqlpg_dumppg_dumpall pg_restorepg_wrapper 没有安装特定版本的二进制包,比如 postgresql-client-9.1 会发出这个错误:

你必须至少安装一个 postgresql-client-

解决此问题的最简单方法是安装 postgresql-client 元包。它始终依赖于基于 Debian 的系统上当前支持的 PostgreSQL 数据库客户端包,它依赖于 postgresql-client-common

sudo apt-get install postgresql-client

【讨论】:

感谢您的回复,jla!似乎 bug heroku 我找到了***.com/questions/17300341/… 来解决 不客气。我在通过在命令行上使用 psql 而不是使用 heroku 搜索“至少一个”错误消息时发现了这一点。在我找到答案后,我想留下一个 Debian 特定的修复程序,它为 Debian 特定的错误提供一个工作的 pg_dump 和 psql,作为建议的忽略错误的 heroku 修复程序的替代方案。 通过heroku run bash 运行sudo apt-get install postgresql-client 不起作用?它返回bash: sudo: command not found。我在这里错过了什么?

以上是关于出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包的主要内容,如果未能解决你的问题,请参考以下文章

将 ktor 应用程序部署到 Heroku 后出现日志错误

Streamlit Python 应用程序成功部署到 Heroku,但出现应用程序错误

在 Heroku 上部署时未找到模块错误

当我当时在 Heroku 中部署 django 应用程序时,出现“Compiled Slug Size is too Large”错误

应用程序中发生错误,无法提供您的页面将 Node.Js REST 部署到 heroku

Node.js Heroku 部署 - 无法执行安装后脚本来安装 Bower